为什么登录表单和注册表单不显示错误?

2024-04-26 11:49:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简单的登录表单和注册表单,在错误验证时不会抛出任何错误,以下是相应的代码:

def signup_view(request):
    if request.method == 'POST':
        signup_form = UserRegistrationForm(request.POST)
        if signup_form.is_valid():
            signup_form.save()
            username = signup_form.cleaned_data.get('username')
            messages.success(request, f'Thank you for using our website.')
            return redirect('user:login')

    signup_form = UserRegistrationForm()
    context = {
        'form':signup_form
    }
    return render(request, 'users/signup.html', context)


def login_view(request):
    if request.method == 'POST':
        login_form = AuthenticationForm(request, request.POST)
        if login_form.is_valid():
            username = login_form.cleaned_data.get('username')
            user = authenticate(username=username, password=login_form.cleaned_data.get('password'))
            if user is not None:
                login(request, user)
                messages.success(request, f'Successfully logged in as <strong> {username} </strong> ')
                return redirect('blog:blogs')

    login_form = AuthenticationForm()
    context = {
        'form': login_form
    }
    return render(request, 'users/login.html', context)

这是登录表单,看起来与注册表单相同:

    <form action="." method="POST" enctype="multipart/form-data">
        {% csrf_token %}
        {{ form|crispy }}
        <input type="submit" value="Login" class="btn btn-warning btn-block">
        <hr>
        <small class='text-secondary'>Don't have an account? <a href="{% url 'user:signup' %}">Sign up</a> </small> <br>
        <small class='text-secondary'>Forgot password? <a href="{% url 'password_reset' %}">Reset</a></small>
    </form>   

这两个表单工作正常,它可以创建一个新用户并登录该用户,但如果我犯了任何错误,它不会抛出或显示该错误,为什么

先谢谢你


Tags: form表单datareturnifrequest错误context
1条回答
网友
1楼 · 发布于 2024-04-26 11:49:40

因为您返回的空白表单存在错误

试试这个

def login_view(request):
    login_form = AuthenticationForm()
    if request.method == 'POST':
        login_form = AuthenticationForm(request, request.POST)
        if login_form.is_valid():
            username = login_form.cleaned_data.get('username')
            user = authenticate(username=username, password=login_form.cleaned_data.get('password'))
            if user is not None:
                login(request, user)
                messages.success(request, f'Successfully logged in as <strong> {username} </strong> ')
                return redirect('blog:blogs')
        else:

            login_form = AuthenticationForm(request.POST)
    context = {
        'form': login_form
    }
    return render(request, 'users/login.html', context)

希望能有帮助

相关问题 更多 >