- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个相当复杂的模型,第一次调用 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
调用的所有参数都正是我想要的。
我不热衷于通过剥离模型来寻找问题,因为模型太复杂了。 (我的所有其他模型,其中许多相似,似乎工作正常。)
那么什么可能导致这个奇怪的消息呢?
最佳答案
花了大约 90 分钟才找到这个。我是在首先从模型中取出抽象超模型、然后是所有关系字段、然后是除一个之外的所有数据字段,直到只剩下一个 IntegerField 后才发现它的。 create
仍然不起作用。
那时,我在完全相同的测试上下文中对其他一些简单模型类 MyModel2
调用了 create
。它起作用了(就像惯用的微风一样)。
那么 MyModel
到底有什么特别之处??
然后我突然意识到:MyModel
有一个 __init__
方法;我的大多数其他型号都没有。所以看看那个。敲敲你的额头:我只是忘记了强制性的(Python 3 风格)
super().__init__(*args, **kwargs)
寓意:不要忘记这一点,否则您可能会遇到非常严重的错误消息。
(注:如果您不喜欢这篇文章的风格,我很抱歉。这是我需要的治疗性写作。)
关于django - 属性错误: 'NoneType' object has no attribute 'attname' (Django),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46360477/
以下代码在 IE9 中返回类型不匹配错误。 node.setAttribute('attributeName',null); 但是 node.setAttribute('attributeName
我有一个相当复杂的模型,第一次调用 MyModel.objects.create(**kwargs) 失败并显示 AttributeError: 'NoneType' object has no at
从指令(或其他地方)设置属性的两种方式有什么区别 (环境): angular.module('module', []) .directive('directive', [ function ()
我是一名优秀的程序员,十分优秀!