我有一段很明显失败的代码:
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引用)。我无法将所有实际代码粘贴到此处,因为它是一个公司项目,但如果有疑问 - 请询问,我可以解释更多内容。
编辑:
好吧我弄清楚它失败的原因,问题是我试图从新构造的对象中调用一个方法,并导致它以这种奇怪的方式崩溃。现在可以关闭此主题。
答案 0 :(得分:0)
除非required_field1
和required_field2
是外键,否则上述代码将无效。
你确定你不是故意的:
temp = MyModel(
required_field1 = unicode(AnotherModel.objects.filter(name="example1")[0]),
required_field2 = unicode(YetAnotherModel.objects.filter(name="example2")[0]),
)
或者:
temp = MyModel(
required_field1 = AnotherModel.objects.filter(name="example1")[0].some_field,
required_field2 = YetAnotherModel.objects.filter(name="example2")[0].some_field,
)