我有一个相当复杂的模型,其中第一个调用MyModel.objects.create(**kwargs)
会失败,显示以下内容:
AttributeError: 'NoneType' object has no attribute 'attname'
堆栈跟踪如下所示(在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)
对我来说,模型定义看起来没问题。我已经检查了create
调用的所有参数都是我想要的。
我不想简化模型以找到问题,因为模型非常复杂。(我所有其他的模型,其中许多相似的模型似乎都工作良好。)
那么是什么导致了这个奇怪的消息呢?