AttributeError:“NoneType”对象没有属性“attname”(Django)

2024-04-17

我有一个相当复杂的模型,第一次调用MyModel.objects.create(**kwargs)失败了

AttributeError:“NoneType”对象没有属性“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还是没用。

那时我打电话给create在其他一些简单的模型类上MyModel2在完全相同的测试环境中。它起作用了(就像惯用的微风一样)。

那么到底有什么特别之处MyModel??

然后我突然意识到:MyModel had an __init__方法;我的大多数其他型号都没有。所以看看那个。敲敲你的额头:我只是忘记了强制性的(Python 3 风格)

super().__init__(*args, **kwargs)

寓意:不要忘记这一点,否则您可能会遇到非常严重的错误消息。

(注:如果您不喜欢这篇文章的风格,我很抱歉。这是我需要的治疗性写作。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AttributeError:“NoneType”对象没有属性“attname”(Django) 的相关文章

随机推荐

  • 如何在 Jackson 中禁用fail_on_empty_beans?

    使用 jackson 2 1 如何禁用fail on empty beans错误消息似乎要我禁用 我假设这只是世界上最简单的事情 但是现在已经晚了 我还没有找到一个简单的教程或任何特别明显的东西api SerializationFactor
  • 如何使用 PHP API [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 有一个非常简单的 API 位于htt
  • 使用 Owin 从 JWT 获取自定义声明

    我使用 Owin 和 JWTBearerAuthentication 来授权用户并验证他们的令牌 我这样做是这样的 public class Startup public void Configuration IAppBuilder app
  • python setattr 用于带有装饰器的动态方法创建器

    我有一个定义了多个方法的类 import mat class Klass object mat sell mat CanSet def method1 self return None mat sell mat CanSet def met
  • 64 位定点乘法错误

    我正在 C 中实现一个 64 位定点有符号 31 32 数字类型 基于long 到目前为止 加法和减法都很顺利 然而 乘法有一个我正在尝试解决的恼人的情况 我当前的算法包括将每个操作数分为最高和最低有效 32 位 执行 4 次乘法分为 4
  • 资产管道升级导致 Paperclip 中的 Default_url 损坏

    我正在使用 Paperclip 并且我的附件之一有一个像这样的 default url 选项 default url gt images missing style png 由于目录已移动 资产管道显然不喜欢这样 处理这个问题的最佳方法是什
  • Spring MVC 控制器是单例吗?

    我有一个关于Spring 3 MVC Controllers 当请求到来时 容器是否为每个请求创建一个新的控制器实例 类似于Action在 Struts 2 中 ThreadLocalActionContext 还是单个实例响应所有请求 默
  • 从 F# 中存储为概率序列的离散分布函数中抽取随机数

    存在给定的有限长度 N 的浮点序列 介于 0 和 1 之间 表示整数 0 N 1 上的分布函数 我们试图从这个分布中抽取一个随机数 一种方法是在 0 1 浮点数 中绘制一个均匀随机变量 然后计算该数字的逆累积分布函数 如果分布在数组中 则代
  • 带有下划线的牛顿驼峰命名法问题

    我注意到 当我序列化具有 HTTP VERB 键的 C 字典时 它会变成httP VERB在 JSON 结构中而不是 hTTP VERB 或 http verb 我希望驼峰式大小写能够实现 这是我用来重现该问题的代码 class Progr
  • Jfreechart垂直线模糊

    I am using JFreechart to generate some plots and I found the lines in my plot is blurry but the demo shows that all the
  • 我的朋友可以使用我的本地 git 存储库作为他的远程存储库吗?

    我的计算机上有一个本地 git 存储库 有没有可能我的朋友将他的上游设置为我计算机上的本地存储库 而我的本地存储库成为他的远程存储库 所以他将能够从我的本地存储库获取最新的更改并推送到我的本地存储库 我不想使用类似的工具github or
  • Google 地图 v3 创建两点之间的路线

    我正在使用 Google Maps API 开发网络应用程序 我正在尝试在两点之间创建一条路线 但由于某种原因我还没有弄清楚如何创建它 以下是我的代码 如果我缺少什么 请告诉我 谢谢
  • Android viewpager自动滑动

    如何处理 viewpager 页面的自动滑动和手动滑动 即 viewpager 中有一组 10 个页面 每个页面在 3 秒后滑动 但问题是当用户滑动页面时 它会移回到我需要的序列页面 1 gt 如果用户连续滑动两个页面 则不应返回 2 gt
  • 子串超出范围

    我正在尝试从字符串的最后部分中提取数字 我已经编写了一个函数来执行此操作 但遇到索引超出范围的问题 这是字符串 type value cat 1 3 6 1 4 1 26928 1 1 1 2 1 2 1 1 descCat 1 3 6 1
  • 内部类和局部变量

    为什么我需要声明local variable as final if my Inner class需要使用内部定义的方法吗 例子 class MyOuter2 private String x Outer2 void doStuff fin
  • 如何在 iPhone 上进行实时声音/信号处理?

    我可能正在开发一个基于 iPhone 的应用程序 进行近乎实时的声音处理 过滤等 我想知道开始的最佳方式 我想创建一个用于录制和处理声音的音频提示吗 如上所述here http developer apple com iphone libr
  • 在 Android Flash 10.1 上打开软件键盘

    我正在开发在浏览器中运行的移动 Flash 应用程序 不是 AIR 应用程序 根据 Adob e 的说法 Flash Player 10 1 提供支持 使用本机设备虚拟键盘 如果没有物理支持 则使用 TextField 支持 检测到键盘 一
  • jquery-ui 滑块手柄完成位置为 100% 左侧 - 将其放置在滑块之外

    我第一次使用 jQuery ui 滑块 并对一个相当基本的问题感到困惑 设置滑块时 我希望不使用主题 当我从左向右滑动时 滑块手柄的右手位置会跨过滑块 1 个手柄宽度 这是由于滑块 css 将手柄定位为 left 100 我注意到许多其他人
  • 如何从 teamcity 以管理员身份运行 Visual Studio 或 nunit

    我目前正在使用 teamcity 运行我的测试 给出以下错误 设置方法失败 System UnauthorizedAccessException 检索 CLSID 为 0002DF01 0000 0000 C000 的组件的 COM 类工厂
  • AttributeError:“NoneType”对象没有属性“attname”(Django)

    我有一个相当复杂的模型 第一次调用MyModel objects create kwargs 失败了 AttributeError NoneType 对象没有属性 attname 堆栈跟踪如下所示 在 Django 1 11 中 djang