我想知道的是如何更改应用于list_display_links
类的admin.ModelAdmin
中列出的项目的URL?
更具体地说,我希望/admin/contacts/contacts/12345/
成为/contacts/12345/
。
我能找到的所有解决方案都相当古老,有些令人费解,并且倾向于在顶部做其他事情-所以我希望有某种明显的方法我想念。
(我有点希望list_display_link_url
(或类似的代码)存在,以取代ModelAdmin
...)
最佳答案
ChangeList
(在您的admin.py
中):from django.contrib.admin.views.main import ChangeList
class ContactChangeList(ChangeList):
def url_for_result(self, result):
pk = getattr(result, self.pk_attname)
# YOU PROBABLY WANT TO CHANGE NEXT LINES!
return reverse('admin:%s_%s_change' % (self.opts.app_label, self.opts.model_name),
args=(quote(pk),),
current_app=self.model_admin.admin_site.name)
ContactsChangeList
而不是标准的ojit_code:class ContactAdmin(admin.ModelAdmin):
...
def get_changelist(self, request, **kwargs):
return ContactChangeList
关于python - 修改Django 1.6管理员更改列表中 "list_display_links"的URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22128020/