在我的 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 值,但也没有取得任何成功。