1
id가 1 인 사이트에 대한 관리자 만 표시하고 싶습니다. 다른보기에서 이것을 dispatch
에 정의했지만이 작업을 수행 할 방법을 찾지 못했습니다. 관리자.django admin을 사이트 ID 1에서만 허용합니다.
나는 custom admin class을 만들려고 시도했지만이 방법 중 하나를 보지 못했습니다.
admin에 대해 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)
내가 따르지 않을지, 모든 사이트에서 동일한 설정 파일을 사용합니다. 모든 사이트는 동일한 견해와 모델을 가지고 있습니다. 한 사이트에 대해 별도의 설정 파일을 어떻게 가질 수 있습니까? – guival
죄송합니다. 장고 (Django)의 선택적인 부분 인 [Sites Framework] (https://docs.djangoproject.com/en/1.11/ref/contrib/sites/)을 사용하고 있고 각 사이트에 대해 별도의 설정 파일을 가지고 있다고 생각했습니다. . 또한 미들웨어를 사용하여 각 요청에 대해'request.urlconf'를 설정할 수 있지만'get_current_site'가 미들웨어에서 호출 가능한지 확실하지 않습니다. – evergreen