Development #42963
/api/user: DoesNotExist: Attribute matching query does not exist.
0%
Description
https://sentry.entrouvert.org/entrouvert/publik/issues/1751/
DoesNotExist: Attribute matching query does not exist. (7 additional frame(s) were not displayed) ... File "authentic2/custom_user/models.py", line 290, in to_json d[str(attribute.name)] = drf_field.to_representation(av.to_python()) File "authentic2/models.py", line 347, in to_python deserialize = self.attribute.get_kind()['deserialize'] File "django/db/models/fields/related_descriptors.py", line 184, in __get__ rel_obj = self.get_object(instance) File "django/db/models/fields/related_descriptors.py", line 159, in get_object return qs.get(self.field.get_reverse_related_filter(instance)) File "django/db/models/query.py", line 380, in get self.model._meta.object_name Internal Server Error: /api/user/
Fichiers
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a presque 4 ans
- Projet changé de Suivi des traces à Authentic 2
- Sujet changé de DoesNotExist: Attribute matching query does not exist. à /api/user: DoesNotExist: Attribute matching query does not exist.
Mis à jour par Benjamin Dauvergne il y a presque 4 ans
- Fichier 0002-tox.ini-hide-modifier-to-disable-sw.patch 0002-tox.ini-hide-modifier-to-disable-sw.patch ajouté
- Fichier 0001-misc-hide-disabled-attributes-and-values-42963.patch 0001-misc-hide-disabled-attributes-and-values-42963.patch ajouté
- Tracker changé de Bug à Development
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a presque 4 ans
(c'est quoi le sw de tox ? (qui arrive au milieu de la branche 2.2 et qui peut être désactivé dans cette branche))
Mis à jour par Benjamin Dauvergne il y a presque 4 ans
Frédéric Péters a écrit :
(c'est quoi le sw de tox ? (qui arrive au milieu de la branche 2.2 et qui peut être désactivé dans cette branche))
Mis à jour par Benjamin Dauvergne il y a presque 4 ans
- Fichier 0001-misc-hide-disabled-attributes-and-values-42963.patch 0001-misc-hide-disabled-attributes-and-values-42963.patch ajouté
Voilà c'est sorti du ticket, concentrons nous.
Mis à jour par Frédéric Péters il y a presque 4 ans
- Statut changé de Solution proposée à Solution validée
Ok.
(pas de problème non plus pour le nosw, mais ça me semble s'ajouter à un truc qui a été ajouté par erreur dans le tox.ini, et du coup je verrais plutôt simplement toute référence sw dégager).
Mis à jour par Paul Marillonnet il y a presque 4 ans
- Statut changé de Solution validée à Solution proposée
- Au lieu des
try … except AttributeError
, est-ce qu'on pourrait se contenter d'ajouterhasattr(self.attributes, 'first_name')
etc. dans lesif …
?
- Qu'est-ce qu'on gagne ici à laisser de côté le Manager de Django pour utiliser le QueryManager de django-model-utils ?
- Du code churn pour rien ici il me semble :
diff --git a/src/authentic2/models.py b/src/authentic2/models.py index 0056097d..01a37e5c 100644 --- a/src/authentic2/models.py +++ b/src/authentic2/models.py @@ -160,8 +160,8 @@ class Attribute(models.Model): verbose_name=_('order'), default=0) - objects = managers.AttributeManager(disabled=False) all_objects = managers.AttributeManager() + objects = managers.AttributeManager(disabled=False) registration_attributes = QueryManager(asked_on_registration=True) user_attributes = QueryManager(user_editable=True)
Mis à jour par Paul Marillonnet il y a presque 4 ans
- Statut changé de Solution proposée à Solution validée
Oops pardon, c'est déjà validé par Fred.
Mis à jour par Benjamin Dauvergne il y a presque 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit a38a843aefbb12f931b8c5f8eef5654fc381a3c1 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Fri May 15 17:08:35 2020 +0200 misc: hide disabled attributes and values (#42963)
Mis à jour par Benjamin Dauvergne il y a presque 4 ans
Pas vu test question, j'y réponds quand même pour la postérité.
Paul Marillonnet a écrit :
- Au lieu des
try … except AttributeError
, est-ce qu'on pourrait se contenter d'ajouterhasattr(self.attributes, 'first_name')
etc. dans lesif …
?
Ça n'est pas équivalent en python2, ça l'est devenu en python3.
- Qu'est-ce qu'on gagne ici à laisser de côté le Manager de Django pour utiliser le QueryManager de django-model-utils ?
Je ne comprends pas, je n'ai rien modifié de ce genre, on utilise toujours AttributeValueManager.
- Du code churn pour rien ici il me semble :
[...]
L'ordre a une importance pour définir le manager par défaut (c'est toujours le premier déclaré), c'est justement cela que je voulais changé.
https://docs.djangoproject.com/fr/3.0/topics/db/managers/#default-managers
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
misc: hide disabled attributes and values (#42963)