在我的django项目中,我有4个模型,它们都绑在一个链上。
Model_D > Model_C > Model_B > Model_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)或
Model_D.objects.filter(model_c = object_of_type_c.id)我甚至在这里和谷歌上都找不到这个错误。我认为这与相关对象管理器的工作方式有关,但我被卡住了。
编辑:有第五个模型,Model_E,它也与Model_C绑定。当我试图在这个模型上进行查找时,我也遇到了同样的问题。我不知道这有什么不同。
最奇怪的是,它似乎可以很好地为Model_C或Model_B执行类似的查找。
更新:
http://code.djangoproject.com/ticket/13640
Model_C有一个名为'evaluate‘的方法,这是一个保留名称。通过重命名方法修复了此问题。
我尝试过以多种方式调整这些模型的related_name值,但也没有取得任何成功。
发布于 2011-04-22 04:28:41
http://code.djangoproject.com/ticket/13640
当您在一个名为'evaluate‘的模型上定义一个方法时,就会出现这个错误。重命名方法解决了这个问题。
https://stackoverflow.com/questions/5734111
复制相似问题