4

Django のデフォルトのログイン ビューに「ログイン状態を維持する」チェック ボックスを追加しようとしています。

これが私がやっていることです:

urls.py

url(r'^login/$',
    myuser_login,
    {'template_name': 'app_registration/login.html', 'authentication_form': MyAuthenticationForm},
    name='auth_login',
),

ビュー.py

from django.contrib.auth.views import login

def myuser_login(request, *args, **kwargs):
    if request.method == 'POST':
        if not request.POST.get('remember', None):
            request.session.set_expiry(0)

    login(request, *args, **kwargs)

したがって、基本的には、自分のビューに追加情報を追加して、Django のデフォルトのログイン関数を呼び出すだけです。これを行うと、次のエラーが発生します。

ValueError at /accounts/login/
The view app_registration.views.myuser_login didn't return an HttpResponse object.

Django のソース コードを確認したところ、デフォルトの contrib.auth.views.login 関数は明らかに HttpResponse を返します。

私は何をすべきか :(((?

ありがとう!!

4

1 に答える 1

8

すべての django ビューは を返す必要がありHttpResponseます。あなたの見解は何も返していません。

このまま帰ればいい

def myuser_login(request, *args, **kwargs):
    if request.method == 'POST':
        if not request.POST.get('remember', None):
            request.session.set_expiry(0)

    return login(request, *args, **kwargs)
于 2013-08-13T11:56:46.627 に答える