[英]Django - Foreign Keys and the Admin Page
我试图在管理更改页面(即www.some.url/admin/<app>/<model>/<id>/change/
页面)上显示外键关系:
我有两个模型通过外键关系链接在一起,如下所示:
# models.py
class Bank(models.Model):
name = models.CharField(max_length=100)
class Branch(models.Model):
bank = models.ForeignKey('Bank', on_delete=models.CASCADE, related_name='branches')
name = models.CharField(max_length=100)
我有一个像这样的模型管理员:
# admin.py
class BankAdmin(admin.ModelAdmin):
list_display = ('id', 'name',)
如何在 django-admin-change 页面上添加与给定银行关联的分行列表? 我可以在我的 BankAdmin 类中添加一些东西来实现这一点吗?
即如果我要访问管理页面并单击银行实例(即www.some.url/admin/<app>/bank/2/change/
),我想查看银行的名称及其所有外键相关的分支。
我一直在搜索 stackoverflow,但找到了一个解决方案 - 如果确实存在,请指出正确的方向。
一种解决方案是在 BankAdmin 的列表显示中注册一个链接,该链接指向显示该银行分行的自定义管理视图。 你可以这样做:
# admin.py
class BankAdmin(admin.ModelAdmin):
def link_branches(self, obj):
return format_html(
"<a href='/admin/<app>/bank/branches/?id={ bank_id }'> Branches </a>",
bank_id=obj.id
)
list_display = ('id', 'name', 'link_branches')
admin.site.register(Bank, BankAdmin)
然后,您只需创建自定义视图并更新 urls.py 以将/admin/<app>/bank/branches
指向该视图。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.