サイト全体で作成したミドルウェアを使用したい(ページ数が多いため、すべてのページにコードを使用したかったので、デコレータを使用しないことにしました)。唯一の問題は、管理コードにミドルウェアを使用したくないということです。ミドルウェアはアクティブになっているようです。
おそらくsettings.pyまたはurls.pyを構成する方法はありますか、それとも管理システムのページで実行されないようにするためのコード内の何かがありますか?
どんな助けでも大歓迎です、
乾杯
ポール
サイト全体で作成したミドルウェアを使用したい(ページ数が多いため、すべてのページにコードを使用したかったので、デコレータを使用しないことにしました)。唯一の問題は、管理コードにミドルウェアを使用したくないということです。ミドルウェアはアクティブになっているようです。
おそらくsettings.pyまたはurls.pyを構成する方法はありますか、それとも管理システムのページで実行されないようにするためのコード内の何かがありますか?
どんな助けでも大歓迎です、
乾杯
ポール
一般的な方法は(piquadratの回答に基づく)
def process_request(self, request):
if request.path.startswith(reverse('admin:index')):
return None
# rest of method
このように、誰かがあなたに変わっ/admin/
た/django_admin/
場合でも、カバーされます。
process_request (およびミドルウェアのその他の process_* メソッド) でパスを確認できます。
def process_request(self, request):
if request.path.startswith('/admin/'):
return None
# rest of method
def process_response(self, request, response):
if request.path.startswith('/admin/'):
return response
# rest of method