1
私のサイトの管理者にID 1を表示します。 他のビューでは、これをdispatch
に定義しましたが、これを行う方法が見つかりませんでした管理者サイトID 1のdjango管理者のみ許可する
私は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)
私がフォローしているかどうかはわかりません。すべてのサイトで同じ設定ファイルが使用されています。すべてのサイトに同じビューとモデルがあります。 1つのサイトに対して別個の設定ファイルをどうすればできますか? – guival
申し訳ありません。私はあなたがDjangoのオプション部分であり、サイトごとに別々の設定ファイルを持っている[Sites Framework](https://docs.djangoproject.com/en/1.11/ref/contrib/sites/)を使っていると思いました。ミドルウェアを使ってリクエストごとに 'request.urlconf'を設定することもできますが、' get_current_site'がミドルウェアから呼び出すことができるかどうかはわかりません。 – evergreen