Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 修改“的URL”;列出“显示链接”;在Django 1.6管理更改列表中_Python_Django_Django Admin - Fatal编程技术网

Python 修改“的URL”;列出“显示链接”;在Django 1.6管理更改列表中

Python 修改“的URL”;列出“显示链接”;在Django 1.6管理更改列表中,python,django,django-admin,Python,Django,Django Admin,我想知道的是如何更改应用于admin.ModelAdmin类的list\u display\u链接中列出的项目的URL 更具体地说,我希望/admin/contacts/contacts/12345/成为/contacts/12345/ 我能找到的所有解决方案都非常古老,有些复杂,而且都是为了在上面做些别的事情——所以我希望我错过了一些明显的方法 (我有点期待list\u display\u link\u url(或类似)存在于ModelAdmin。) 覆盖标准变更列表(在您的admin.py中

我想知道的是如何更改应用于
admin.ModelAdmin
类的
list\u display\u链接中列出的项目的URL

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

我能找到的所有解决方案都非常古老,有些复杂,而且都是为了在上面做些别的事情——所以我希望我错过了一些明显的方法

(我有点期待
list\u display\u link\u url
(或类似)存在于
ModelAdmin
。)

  • 覆盖标准
    变更列表
    (在您的
    admin.py中
    ):

  • 告诉Django管理员使用新的
    联系人列表
    ,而不是标准联系人列表:


  • 如果遵循Alex Yakovlev的建议,您可能会恢复到ChangeList的原始实现,在Django的旧版本中(当然是1.2版),它是:

    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)
    
    class ContactAdmin(admin.ModelAdmin):  
        ...  
        def get_changelist(self, request, **kwargs):  
            return ContactChangeList
    
    def url_for_result(self, result):
        return "%s/" % quote(getattr(result, self.pk_attname))