0
私は少し困惑しています。私は、ウェブサイトの現在のURLが私のurlpattersの特定のサブセットにあるかどうか確認したい。 djangoのどの機能がこれを行うでしょうか?これは、私のウェブサイトの特定の部分に移動する前に追加情報を要求するミドルウェアのためのものです。urlpatternsのリストに現在のURLがあるかどうかをチェックする方法は?
class AuthorityMiddleware(object):
def process_request(self, request):
current_url = request.path_info
if not request.user.is_anonymous() and current_url not in exclude_list:
if not request.session.get('authority'):
return get_the_authority(request)
urls.pyで定義されているurlパターンに関連するリストを除外する方法を教えてください。
[ 'resolve'(https://docs.djangoproject.com/en/1.11/ref/urlresolvers/#resolve)メソッドは、URLパスを取り、対応するビューを返し、それはかどうかは明らかではありませんそれがあなたが望むものです。除外するビューとURLパターンの例をいくつか挙げておけば、あなたの質問はより明確になります。制限付きビューのデコレータではなく、ミドルウェアでこのチェックをしてもよろしいですか? – Alasdair
解決方法を確認しましたが、私のurlパターンに定義されているURLのサブセットのみが必要です。公開されている特定のアプリ、および追加のログインが必要なアプリなどがあります。あなたはデコレータで正しいです。私はいつも間違ったことを考えていた。私が上記のコードを作成したときには、ミドルウェアだけがあなたのビューが表示される前に別のページにリダイレクトできると思っていました。しかし、それは真実ではありません。私は適切なデコレータで私の問題を解決することができました。ありがとうございました。 – Claude
私の除外リストには、逆関数とURLのリストがありましたが、トークン化された関数やキーを必要とする関数(パスワードのリセットなど)を必要とするURLには失敗します。 – Claude