如果这太复杂或者没有正确的做事方式,请随时将我与别人联系起来,或者告诉我我应该采取另一种方式......
基本上,我正在处理有客户的项目,每个客户都附加了任意数量的网站。因此,网站模型对客户端模型具有ForeignKey。网站管理页面非常深入,每个客户可能有10个或更多网站,所以我不希望它们全部显示为内联,因为这看起来非常混乱和疯狂。
我想要的是,当您转到管理面板并点击“客户”时,您会进入更改页面,其中包含您为客户编辑的基本内容,然后每个客户的网站管理页面的实际链接的内联。像这样:
名称:
地址:
电话:
链接编辑网站1
链接编辑网站2
链接编辑网站3
链接编辑网站4
链接编辑网站5
答案 0 :(得分:5)
您可以使用仅包含模型更改页面链接的TabularInline
:
class ClientAdmin(admin.ModelAdmin):
# everything as normal
inlines = WebsiteInline,
class WebsiteInline(admin.TabularInline):
model = Website
fields = 'link',
readonly_fields = 'link',
def link(self, instance):
url = reverse("admin:myapp_website_change", args = (instance.id,))
return mark_safe("<a href='%s'>%s</a>" % (url, unicode(instance)))
admin.site.register(Client, ClientAdmin)
admin.site.register(Website)
请参阅我最近提出的问题How do I add a link from the Django admin page of one object to the admin page of a related object?,该问题涉及如何做到这一点,但有几对模型而不是一对。