反向自定义 django 管理站点 url?

Posted

技术标签:

【中文标题】反向自定义 django 管理站点 url?【英文标题】:Reverse custom django Admin Site urls? 【发布时间】:2011-11-28 14:34:11 【问题描述】:

有没有办法反转添加到自定义 django AdminSite 的 URL,例如

class MyAdminSite(AdminSite):
    def get_urls(self):
        urls = super(MyAdminSite, self).get_urls()
        my_urls = patterns('',
            url(r'some_view/$',self.admin_view( SomeView.as_view()), name='some_view' ),
        )
        return my_urls + url

myadmin = MyAdminSite(app_name='my_admin')


url(r'^admin/', include(my_admin.urls)),

我如何反转some_view

【问题讨论】:

【参考方案1】:

尝试:% url admin:some_view %

【讨论】:

很好,不知道为什么它以前对我不起作用,可能是我的错误 他们有点挑剔,但很高兴我能帮上忙!【参考方案2】:

或者,如果您为管理站点定义了一个名称,如下所示:

class ExplorerAdmin(admin.AdminSite):
    def __init__(self, *args, **kwargs):
        super(ExplorerAdmin, self).__init__(*args, **kwargs)
        self.name = 'explorer_admin'
        self.app_name = 'rql'

    def get_urls(self):
        parent_patterns = super(RQLExplorerAdmin, self).get_urls()
        dashboard_patterns = [
            url(r'^$', admin.site.admin_view(TemplateView.as_view(template_name='explorer.html')), name="explorer")
        ]
        return dashboard_patterns + parent_patterns

可以通过使用您的自定义站点名称应用命名空间来反转 url,如下所示:

reverse('explorer_admin:explorer')

【讨论】:

以上是关于反向自定义 django 管理站点 url?的主要内容,如果未能解决你的问题,请参考以下文章

完全自定义 django 管理站点

为啥它呈现 django 管理站点而不是自定义注销页面

使用自定义管理站点自动注册 Django 身份验证模型

无法创建自定义管理模板 url,出现错误模板错误和创建自定义管理站点错误

Django 管理站点 change_list 视图自定义

未定义 Django 自定义管理 url