我有一个django项目,它有两个应用程序,一个是AppA
和AppB
。现在AppA
有一个模型
使用ModelA
ModelB
中的模型AppB
引用的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
的首选方法是什么?
答案 0 :(得分:5)
如ForeignKey
所述,如您在ModelB
中所描述的那样mb = ModelB.objects.get(pk=prim_id)
,那么查找modela
属性不是反向查找< / strong>即可。您只需通过mb.modela
访问相关对象!