当您扩展AdminSite
以创建另一个管理网站时,您如何能够反向匹配每个网站?似乎admin
命名空间是硬编码的reverse('admin:index')
,有没有办法提供自定义命名空间?
答案 0 :(得分:4)
您可能会对django中的命名空间感到困惑。如果您有兴趣澄清这种混淆,可以阅读讨论here。
如果您想尝试解决问题,则有多个管理网站specific documentation。
以下是大部分从官方文档中复制的示例解决方案
# urls.py
from django.conf.urls import url
from .sites import basic_site, advanced_site
urlpatterns = [
url(r'^basic-admin/', basic_site.urls),
url(r'^advanced-admin/', advanced_site.urls),
]
和
# sites.py
from django.contrib.admin import AdminSite
class MyAdminSite(AdminSite):
site_header = 'Monty Python administration'
basic_site = MyAdminSite(name='myadminbasic')
advanced_site = MyAdminSite(name='myadminadvanced')
倒车
reverse('myadminbasic:index') # /basic-admin/
reverse('myadminadvanced:index') # /advanced-admin/