почему в форме входа и регистрации не отображаются ошибки? - PullRequest
0 голосов
/ 15 июня 2019

У меня есть простая форма входа в систему и форма регистрации, которая при неправильной проверке не выдает никакой ошибки, это соответствующие коды:

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>   

Эти две формы работают должным образом, он может создать нового пользователя и войти в него, но если я сделаю какую-либо ошибку, она не выдаст или не покажет эту ошибку, почему?

Заранее спасибо

1 Ответ

1 голос
/ 15 июня 2019

Поскольку у вас есть пустая форма возврата в состоянии ошибки

попробуйте это

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)

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...