0

django で (単純な authenticate() 関数を使用して) ユーザーを認証しようとしています。

def auth(request):
    if request.method == 'POST':
        auth_form = AuthenticationForm(request.POST)
        if auth_form.is_valid():
            auth_form.save()
            user = authenticate(username=request.POST['id_username'],password=request.POST['id_password'])
            if user is not None:
                login(request,user)
                return redirect('/profile/home/')
            else:
                return redirect('/')
    else:
        return redirect('/')

def register(request):
    if request.method == 'POST':
        form = SimpleUserCreation(request.POST)
        if form.is_valid():
            form.save()
            user = authenticate(username=request.POST['id_username'],password=request.POST['id_password1'])
            login(request,user)
            return redirect('/profile/home/')
        else:
            return redirect('/')

これはフォームを表示するテンプレートです - 同じページにログイン フォームと登録フォームを表示したかっただけです (この例の場合)。

{% extends 'base.html' %}

{% load bootstrap_toolkit %}

{% block content %}
    <div class="row">
        <div class="span4 offset1 login">
            <form class="form-signin" action="/auth/" method="POST">
                {% csrf_token %}
                {{ auth_form|as_bootstrap }}
                <br>
                <center>
                    <button class="btn btn-large btn-primary" type="submit">
                        Sign In
                    </button>
                </center>
            </form>
        </div>
        <div class="span4 offset2 signup">
            <form action="/register/" method="POST">
                {% csrf_token %}
                {{ form|as_bootstrap }}
                <br>
                <center>
                    <button class="btn btn-large btn-primary" type="submit">
                        Register
                    </button>
                </center>
            </form>
        </div>
    </div>
{% endblock %}

次のようなエラーが表示されます。

ValueError at /auth/
The view SimpleUserAuth.auth.views.auth didn't return an HttpResponse object.

どこが間違っているのか分かりませんか?? 認証機能がフィールドの正しいIDを見つけることができないと思います...多分私は間違っています。私は初心者です :|

乾杯

4

2 に答える 2

0

私はこれらの行で間違いを犯しました -

1) AuthenticationForm は次のように引数を取ります: AuthenticationForm(data=request.POST)

2) AuthenticationForm を保存できません。

auth_form = AuthenticationForm(request.POST)
        if auth_form.is_valid():
            auth_form.save()

助けてくれてありがとう

于 2013-07-15T04:42:42.323 に答える
0

あなたのauthメソッドでは、 return の場合、オブジェクトをauth_form.is_valid()返しFalseません。response

の場合も同様ですdef register(request):。リクエストの場合、メソッドはオブジェクトGETを返しません。response

したがって、エラー

于 2013-07-14T19:30:17.823 に答える