2

私のビューのほとんどはログインが必要です。続行する前に、すべてのビューまたはビューのサブセットにユーザー is_authenticated() = True が必要であることを指定する方法はありますか? そうでない場合、ユーザーはログイン ページにリダイレクトされますか?

4

2 に答える 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 に答える