我有一个django项目,其中有两个应用程序,一个是AppA
和AppB
。现在AppA
有一个模型
使用ModelA
由ModelB
中的模型AppB
引用的modelA = models.ForeignKey(ModelA, related_name='tricky')
现在在AppA
的 View 中,当它显示ModelA
时,我将执行get_object_or_404(ModelA, pk=prim_id)
。然后,我想获取所有具有指向ModelB
的外键的ModelA
。
文档说我应该先输入mb = ModelB.objects.get(pk=prim_id)
,然后再输入mb.modela_set.all()
但是,它在mb.modela_set
上失败,并显示"ModelB object has no attribute 'suchsuch'"
。注意,我将related_name
字段添加到ForeignKey中,因此我也尝试了此操作,包括mb.tricky.all()
和mb.tricky_set.all()
无济于事。
哦,我为AppA
指定了一个不同的管理器,我在其中执行objects = MyManager()
,该管理器返回常规查询,但应用了过滤器。
可能是什么问题呢?获得引用ModelB
的ModelA
的首选方法是什么?
最佳答案
如果ForeignKey
是(如您在ModelB
中描述的那样)并执行mb = ModelB.objects.get(pk=prim_id)
,则对modela
属性的查找不是反向查找。您只需通过mb.modela
访问相关对象!