当您扩展AdminSite到创建另一个管理站点时,如何才能反向匹配每个站点?似乎admin名称空间是硬编码的reverse('admin:index'),有没有办法提供自定义名称空间?
您可能会对django中的名称空间感到困惑。如果您有兴趣澄清这种混淆,可以在这里阅读讨论。
如果您想尝试解决问题,则有针对多个管理站点的特定文档。
以下是主要从官方文档复制的示例解决方案
# 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),
]
Run Code Online (Sandbox Code Playgroud)
和
# 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')
Run Code Online (Sandbox Code Playgroud)
倒车
reverse('myadminbasic:index') # /basic-admin/
reverse('myadminadvanced:index') # /advanced-admin/
Run Code Online (Sandbox Code Playgroud)