我有一个django项目,其中有两个应用程序,一个是AppAAppB。现在AppA有一个模型
使用ModelAModelB中的模型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(),该管理器返回常规查询,但应用了过滤器。

可能是什么问题呢?获得引用ModelBModelA的首选方法是什么?

最佳答案

如果ForeignKey是(如您在ModelB中描述的那样)并执行mb = ModelB.objects.get(pk=prim_id),则对modela属性的查找不是反向查找。您只需通过mb.modela访问相关对象!

10-04 23:19