私のビューのほとんどはログインが必要です。続行する前に、すべてのビューまたはビューのサブセットにユーザー is_authenticated() = True が必要であることを指定する方法はありますか? そうでない場合、ユーザーはログイン ページにリダイレクトされますか?
質問する
302 次
2 に答える
2
https://docs.djangoproject.com/en/1.4/topics/auth/#the-login-required-decorator
from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
...
于 2012-05-18T22:38:36.140 に答える
1
そうしたい場合は、従わなければならないいくつかの規則があります。
request.user
が on に設定されてAuthenticationMiddleware
いるため、その前にカスタム ミドルウェアを配置すると失敗します。process_view
ビューが呼び出される前に実行されるメソッドのみを使用できます
しかし、どういうわけか; login free viewsのようなリストを作成する必要がありますが、新しいビューを作成するたびにリストをチェックするのが問題になる可能性があるため、そうする必要はありません。一方、login_required
デコレータはそのように機能し、使いやすいです... したがって、そのようなことを行う前に よく考えて、本当にそのようなものが必要かどうかを検討する必要があります。
これはカスタムミドルウェアのドキュメントであり、ミドルウェアクラスの順序は本当に重要であるため、重要なdjangoデフォルトミドルウェアクラスです。
于 2012-05-18T23:10:52.223 に答える