gpt4 book ai didi

python - 在 Django 1.6 管理更改列表中修改 "list_display_links"的 URL

转载 作者:太空狗 更新时间:2023-10-29 21:03:27 26 4
gpt4 key购买 nike

我想知道的是如何更改应用于 admin.ModelAdmin 类的 list_display_links 中列出的项目的 URL?

更具体地说,我希望 /admin/contacts/contacts/12345/ 成为 /contacts/12345/

我能找到的所有解决方案都很陈旧,有些令人费解,而且是为了在上面做一些其他事情——所以我希望我能找到一些明显的方法。

(我有点期待 list_display_link_url(或类似的)存在以覆盖 ModelAdmin...)

最佳答案

  1. 覆盖标准 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)
  2. 告诉 Django 管理员使用新的 ContactsChangeList 而不是标准的:

    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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com