2017-07-18 64 views
0

如何在Django管理鏈接,自定義Django的管理URL我有Django管理2個應用程序,我想從APP1在app 2如何在django admin中創建鏈接到自定義django admin 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 

管理員鏈接到自定義網址的.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) 

回答

1

你有name="TargetLink"當你定義的URL模式,因此可以逆轉與

網址

如果你想app2是在URL模式名,你必須自己包括它,例如:

reverse("admin:app2_TargetLink",args=(obj.pk,)) 
+0

我想你的解決方案,但我有:

url(r'(\d*)/target_link/$', self.admin_site.admin_view(self.target_link_view),name="app2_TargetLink"), 

然後扭轉它錯誤: 未找到'app2_TargetLink'的反轉。 'app2_TargetLink'不是有效的視圖函數或模式名稱。 – user2604098

+0

您的目標鏈接視圖是否可以正常工作?我的第一個建議是否有效? – Alasdair

+0

坦克,但任何想法不起作用 – user2604098