Projet

Général

Profil

Development #42963

/api/user: DoesNotExist: Attribute matching query does not exist.

Ajouté par Sentry Io il y a presque 4 ans. Mis à jour il y a presque 4 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Révision a38a843a (diff)
Ajouté par Benjamin Dauvergne il y a presque 4 ans

misc: hide disabled attributes and values (#42963)

Historique

#1

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.
#2

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

Encore un attribut désactivé.

#3

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

  • Assigné à mis à Benjamin Dauvergne
#4

Mis à jour par Benjamin Dauvergne il y a presque 4 ans

#5

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))

#6

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))

https://docs.pytest.org/en/latest/cache.html#stepwise

#8

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).

#9

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'ajouter hasattr(self.attributes, 'first_name') etc. dans les if … ?
  • 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) 
    
#10

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.

#11

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)
#12

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'ajouter hasattr(self.attributes, 'first_name') etc. dans les if … ?

Ç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

#13

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