j'ai un modèle relativement complexe pour lequel le premier appel à MyModel.objects.create(**kwargs)
échoue avecAttributeError: objet « NoneType » n'a pas d'attribut « attname » (Django)
AttributeError: 'NoneType' object has no attribute 'attname'
La trace de pile plonge vers le bas comme cela (en Django 1.11)
django/db/models/manager.py:85: in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
django/db/models/query.py:394: in create
obj.save(force_insert=True, using=self.db)
django/db/models/base.py:807: in save
force_update=force_update, update_fields=update_fields)
django/db/models/base.py:837: in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
django/db/models/base.py:889: in _save_table
pk_val = self._get_pk_val(meta)
django/db/models/base.py:644: in _get_pk_val
return getattr(self, meta.pk.attname)
django/db/models/query_utils.py:114: in __get__
val = self._check_parent_chain(instance, self.field_name)
django/db/models/query_utils.py:131: in __check_parent_chain
return getattr(instance, link_field.attname)
La définition du modèle me semble correcte. J'ai vérifié tous les paramètres de l'appel create
sont exactement ce que je veux qu'ils soient. Je ne veux pas démonter le modèle pour trouver le problème, parce que le modèle est si complexe. (Tous mes autres modèles, beaucoup d'entre eux similaires, semblent fonctionner correctement.)
Alors, qu'est-ce qui pourrait causer ce message étrange?