在Django admin(列表模式)中显示模型的一对多关系

时间:2010-05-29 03:44:24

标签: django django-admin

在Django管理网站中,列出给定模型的所有对象时,我知道我们可以通过list_display

自定义为ModelA显示哪些列

假设ModelA与ModelB有一对多的关系。我想在ModelA的列表页面上添加另一个列,其中每个条目都是指向ModelB的所有对象的URL,该对象在该行中对应的Model A实例上具有外键关系。如何使用管理员应用程序实现此自定义?

1 个答案:

答案 0 :(得分:1)

您应该向ModelA的管理类添加一个方法:

def modelb_link(self, inst):
    url = u'../modelb/?modela__id__exact=%d' % inst.id
    return u'<a href="%s">Models B</a>' % url
modelb_link.allow_tags = True
modelb_link.short_description = u'Models B'

在url中,'modela__id__exact'部分是列表页面的过滤器,其中'modela'是ModelB类中ForeignKey字段的名称,链接到ModelA。

然后在'list_display'属性中使用此方法,您就完成了。如果您遇到任何问题,请问,我会尽力帮助。

问候, 卢卡斯