如何在 django admin 中创建到自定义 django admin url 的链接 我在 django admin 中有 2 个应用程序,我想从 app1 链接到应用程序 2 中的自定义 url
admin.py APP1
class APP1Admin(ModelAdmin):
list_display = ('xx','request_me')
def request_me(self,obj):
reverse_path = reverse("admin: APP2_TargetLink",args=(obj.pk,)) # My Problem is How to link to func APP2 target link
return '<a href="%s"> link </a>'%(reverse_path)
request_me.allow_tags =True
admin.py APP2
class APP2Admin(ModelAdmin):
def get_urls(self):
urls = super(APP2Admin, self).get_urls()
my_urls = [
url(r'(\d*)/target_link/$', self.admin_site.admin_view(self.target_link_view),name="TargetLink"),
]
return my_urls + urls
def target_link_view(self,request,id):
...
return TemplateResponse(request, template, context)
定义 URL 模式时有
name="TargetLink"
,因此您可以使用 反转 URL
reverse("admin:TargetLink",args=(obj.pk,))
如果您希望
app2
出现在 URL 模式名称中,则必须自己包含它,例如:
url(r'(\d*)/target_link/$', self.admin_site.admin_view(self.target_link_view),name="app2_TargetLink"),
然后用以下命令反转它:
reverse("admin:app2_TargetLink",args=(obj.pk,))