外键的Django反向查找

rap*_*ura 6 python django model django-queryset

我有一个django项目,它有两个应用程序,一个是AppAAppB.现在AppA有一个模型, ModelA它是由模型中引用ModelBAppB使用modelA = models.ForeignKey(ModelA, related_name='tricky')

现在在我看来AppA,当它显示时ModelA,我做了一个get_object_or_404(ModelA, pk=prim_id).然后我想得到所有ModelB有外键指向的s 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

Ber*_*ant 5

如果ForeignKey是,正如您所描述的那样ModelB,mb = ModelB.objects.get(pk=prim_id)那么查找modela属性不是反向查找.你只需通过访问相关对象mb.modela!