反向自定义django管理站点网址?

arm*_*nge 7 django django-urls django-admin

例如,有没有办法可以反转添加到自定义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)),
Run Code Online (Sandbox Code Playgroud)

我该怎么扭转呢? some_view

Bra*_*don 10

尝试:{%url admin:some_view%}


Bob*_*bby 5

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

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
Run Code Online (Sandbox Code Playgroud)

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

reverse('explorer_admin:explorer')
Run Code Online (Sandbox Code Playgroud)