我想只显示ID为1的网站的管理员。
在其他观点中,我已在dispatch
中对此进行了定义,但我还没有找到办法为管理员执行此操作。
我尝试制作custom admin class,但我也没有办法做到这一点。
有没有办法为管理员定义dispatch
,或限制管理员显示的网站?
我使用的发货:
def dispatch(self, *args, **kwargs):
try:
if get_current_site(self.request).pk != settings.MY_SITE_ID:
response = render(self.request, 'my_app/404.html')
response.status_code = 404
return response
except Site.DoesNotExist:
response = render(self.request, 'my_app/404.html', {'site_doesnotexist': True})
response.status_code = 404
return response
return super(MyView, self).dispatch(*args, **kwargs)
答案 0 :(得分:0)
您可以在启用了admin的网站的“设置”文件中指定其他ROOT_URLCONF
。此ROOT_URLCONF
将包含管理网址模式。
MY_SITE_ID = 1
ROOT_URLCONF = 'my_project.urls_with_admin'
# my_project/my_project/urls_with_admin.py
from django.conf.urls import url
from django.contrib import admin
from urls import urlpatterns
urlpatterns.append(url(r'^admin/', admin.site.urls))
其他网站使用的基本urls.py
文件将省略管理模式,使管理员无法访问。