Python 对象没有属性';准备';

Python 对象没有属性';准备';,python,django,django-models,prepare,Python,Django,Django Models,Prepare,在我的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没有'prepare'属性” 但是,当我这样查找时,我没有得到任何错误 Model_D.objects.filter(model_c

在我的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没有'prepare'属性”

但是,当我这样查找时,我没有得到任何错误

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

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

编辑:有一个第五个模型,模型_E,它也与模型_C相关联。我在尝试查找这个模型时也遇到了同样的问题。我不知道这是否有什么区别

最奇怪的是,它似乎可以很好地为Model_C或Model_B执行类似的查找

更新:

模型C有一个名为“evaluate”的方法,它是一个保留名称。通过重命名方法修复了该问题

我曾尝试用多种方法调整这些模型的相关名称值,但也没有成功。


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

如果您使用相同的查询,但通过反向关系,该方法是否有效?ie
object\u的类型为\u c.model\u d\u set.all()
?是。当通过相关名称访问时,我确实得到了相反的关系。还要注意的是,我编辑了关于我的第五个模型的原始帖子,这也与模型C有关。请在上面发布模型C的定义。仅更改型号名称以符合我以前的命名方案。Common info是一个抽象基类,由所有刚刚创建了\u date并更新了\u date字段(即auto\u now\u true和auto\u now)的模型共享。我发现我的问题模型\u C有一个名为“evaluate”的方法,它显然是一个保留名称。
Model_D.objects.filter(model_c = object_of_type_c.id)