Django模型对象的构造无声地失败

时间:2012-03-11 22:19:59

标签: python django model

我有一段很明显失败的代码:

temp = MyModel(
    required_field1 = AnotherModel.objects.filter(name="example1")[0],
    required_field2 = YetAnotherModel.objects.filter(name="example2")[0],
)

问题是,之后,temp被设置为None!我没有回溯,没有错误消息 - 它只是不起作用并离开Nonerequired_fieldNs (for N=1|2)MyModel中唯一的必填字段。存在AnotherModelYetAnotherModel的对象。有没有人知道为什么它不能正常工作(我的意思是它不构造一个新的对象,由temp引用)。我无法将所有实际代码粘贴到此处,因为它是一个公司项目,但如果有疑问 - 请询问,我可以解释更多内容。 编辑: 好吧我弄清楚它失败的原因,问题是我试图从新构造的对象中调用一个方法,并导致它以这种奇怪的方式崩溃。现在可以关闭此主题。

1 个答案:

答案 0 :(得分:0)

除非required_field1required_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,
)