Projet

Général

Profil

Development #45151

Action "Modification de fiche" : Fausse Erreur "Impossible de trouver « Accès - Véhicules » lié par l’identifiant None erreur KeyError (None)"

Ajouté par Stéphane Laget il y a presque 4 ans. Mis à jour il y a presque 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
15 juillet 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Ici : https://demarches-slaget.test.entrouvert.org/backoffice/workflows/15/

J'ai l'erreur

Impossible de trouver « Accès - Véhicules » lié par l’identifiant None

Alors que la fiche est bien liée avec la variable {{form_var_vehiculeliaison}}

L'action s'effectue correctement malgré l'affichage de l'erreur.


Fichiers

Révisions associées

Révision 299f150f (diff)
Ajouté par Frédéric Péters il y a presque 4 ans

workflows: ignore empty linked data (#45151)

Historique

#1

Mis à jour par Thomas Noël il y a presque 4 ans

  • Statut changé de Nouveau à Information nécessaire
  • Assigné à mis à Serghei Mihai

Serghei comme tu as codé ce passage du code je veux bien un petit coup de main. En l'état je ne comprends pas ce qui peut se passer (c'est certainement un gros jeu de piste).

Le log vient de wcs/wf/external_workflow.py dans iter_target_datas, sur cette partie :

       for target_id in data_ids:
            try:
                yield objectdef.data_class().get(target_id)        <-- il doit y avoir un des target_id à None...
            except KeyError as e:
                # use custom error message depending on target type
                LoggedError.record(_('Could not find linked "%(object_name)s" object by id %(object_id)s') % {
                    'object_name': objectdef.name, 'object_id': target_id},
                    formdata=formdata, exception=e)

#2

Mis à jour par Frédéric Péters il y a presque 4 ans

Je peux imaginer ça arrivant via :

        # search linked objects in data sources
        for field in formdata.get_formdef().get_all_fields():
            if getattr(field, 'data_source', None) and field.data_source['type'] == self.slug:
                data_ids.append(formdata.data.get(field.id))

parce que dans la démarche https://demarches-slaget.test.entrouvert.org/backoffice/forms/25/fields/ il y a deux champs alimentés par la source de données, le second avec False comme condition, et donc champ vide.

#3

Mis à jour par Frédéric Péters il y a presque 4 ans

#4

Mis à jour par Thomas Noël il y a presque 4 ans

  • Statut changé de Solution proposée à Solution validée

Ça me semble bien logique.

#5

Mis à jour par Frédéric Péters il y a presque 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 299f150fbb7ace143dc272d6fc9c2d940da51d40
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Wed Jul 15 20:32:25 2020 +0200

    workflows: ignore empty linked data (#45151)
#6

Mis à jour par Frédéric Péters il y a presque 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF