【发布时间】:2012-03-28 09:39:37
【问题描述】:
我有一段很明显的代码失败了:
temp = MyModel(
required_field1 = AnotherModel.objects.filter(name="example1")[0],
required_field2 = YetAnotherModel.objects.filter(name="example2")[0],
)
问题是在那之后,temp 被设置为None!我没有回溯,没有错误消息 - 它只是不起作用并离开None。 required_fieldNs (for N=1|2) 是 MyModel 中唯一的必填字段。 AnotherModel 和 YetAnotherModel 的对象存在。有谁知道为什么它不能像我想的那样工作(我的意思是它没有构造一个由 temp 引用的新对象)。我不能在这里粘贴我所有的实际代码,因为它是一个公司项目,但如果有疑问 - 请询问,我可能会解释更多。
编辑:
好的,我知道它为什么会失败,问题是我试图从那个新构造的对象中调用一个方法,它导致它以这种奇怪的方式崩溃。这个话题现在可以关闭了。
【问题讨论】:
-
您是否尝试过将声明拆分成多个部分,并逐步检查一切是否正常?因此,在创建模型实例之前进行 ORM 查找(并打印关于它们中的每一个的内容,以便您知道它有效)。如果做不到这一点,您的确切代码是否在
manage.py shellREPL 中失败? -
是的,它在 manage.py shell 中收支平衡