2

URL 'site/main/' に対して定義されたビューがあります。(認証されていない) ユーザーがログインのためにデフォルトの「/admin/」ページにリダイレクトされ、ログイン成功後に「/main/」ページにリダイレクトされるようにしたいと考えています。私はdjangoのドキュメントに従いましたが、これを機能させることができないため、何かが欠けているに違いありません。私の見解は次のようになります:

def main(request):
    if not request.user.is_authenticated():
        return HttpResponseRedirect('admin/?next=%s' % request.path)
    else:

エラーが発生します:

ページが見つかりません(404)
リクエスト方法: GET
リクエスト URL :http://sitename:8080/main/admin/?next=/main/

どんな助けでも大歓迎です!

4

4 に答える 4

6

/URL にイニシャルがありません:/admin/?next=...

adminただし、 URL はnextパラメーターについて何も知らないため、これはまだ機能しません。これは、実際のログイン ビューのみを対象としています。コードを使用すると、ユーザーは管理者にログインしますが、ページにリダイレクトされることはありません。

ログイン テンプレートを作成し、それを組み込みのログイン ビューに接続する必要があります。is_authenticated次に、ビューをチェックインする代わりに、login_requiredデコレータを使用するだけです。

@login_required
def main(request):
   ...
于 2012-06-20T15:03:04.640 に答える
3

あなたrequest.pathはすべきではありません/main/。最初なしで試してみてください。

于 2012-06-20T15:01:27.147 に答える