1

在我的 django 项目中,我有 4 个模型,它们都捆绑在一起。

模型_D > 模型_C > 模型_B > 模型_A

所以Model_C有一个外键字段指向Model_B,Model_B有一个外键字段指向Model_A

当我进行如下查找时,出现以下错误

Model_D.objects.filter(model_c = object_of_type_c)

我收到错误“Model_C 没有属性‘准备’”

但是,当我像这样进行查找时,我没有收到任何错误

Model_D.objects.filter(model_c__id = object_of_type_c.id)

或者

Model_D.objects.filter(model_c = object_of_type_c.id)

我什至在这里或谷歌搜索都找不到这个错误。我认为这与相关对象管理器的工作方式有关,但我被卡住了。

编辑:有第 5 个模型,Model_E,它也与 Model_C 相关联。尝试查找此模型时,我也遇到了同样的问题。我不知道这是否有什么不同。

最奇怪的部分是它似乎可以很好地为 Model_C 或 Model_B 进行类似的查找。

更新:

http://code.djangoproject.com/ticket/13640

Model_C 有一个名为“评估”的方法,它是一个保留名称。通过重命名方法来解决问题。

我已经尝试以多种方式调整这些模型的related_name 值,但也没有取得任何成功。

4

1 回答 1

2

http://code.djangoproject.com/ticket/13640

当您在名称为“评估”的模型上定义方法时,会出现此错误。重命名方法可以解决问题。

于 2011-04-21T20:28:40.610 回答