Как показать ошибку валидации в форме Django?

Я новичок в Django. Я пытаюсь сделать простую форму для проверки пароля. Однако, когда я ввожу разные пароли и нажимаю кнопку Save, я получаю очищенную форму вместо того, чтобы показать ошибку валидации.

Здесь newuser.html:

{% block content %}
<form method="POST">
{% csrf_token %}
    <table>
        {{frmNewUser.as_table}}
        {% for error in frmNewUser.password.errors %} {% comment %} I tried frmNewUser.non_field_errors too {% endcomment %}
            <p>{{error}}</p>
        {% endfor %}
    </table>
    <input type="submit" name="Save" value="Save" colspan=2>
</form>
{% endblock content %}

Здесь forms.py:

class NewUserFrom(forms.Form):
    username = forms.CharField(max_length=50, widget=forms.TextInput)
    password = forms.CharField(widget=forms.PasswordInput)
    confirm_password = forms.CharField(label="Confirm password", widget=forms.PasswordInput)
    name = forms.CharField(max_length=50, widget=forms.TextInput)
    email = forms.EmailField(max_length=50, widget=forms.EmailInput)

    def clean(self):
        cleaned_data = super().clean()
        pwd = cleaned_data.get('password')
        cof_pwd = cleaned_data.get('confirm_password')
        if pwd and cof_pwd:
            if pwd != cof_pwd:
                raise forms.ValidationError('Password is not match.')
        return super().clean()

Здесь views.py:

from django.shortcuts import render
from django.http import HttpResponse, request
from django.db import connection
from django.contrib.auth.decorators import login_required
import pyodbc
from .forms import NewUserFrom

def newUser(request):    
     
     form = NewUserFrom(request.POST)
     if not form.is_valid():     
          return render(request,'login/newuser.html', {'frmNewUser':NewUserFrom})
     return render(request, "login/welcome.html")

Попробуйте следовать этой статье, она помогла, когда у меня была похожая проблема

в функции newUser

def newUser(request):    
     
     form = NewUserFrom(request.POST)
     if not form.is_valid():     
          return render(request,'login/newuser.html', {'frmNewUser':NewUserFrom})
     return render(request, "login/welcome.html")

возвращаемое значение в операторе if должно быть изменено с {'frmNewUser':NewUserFrom}) на {'frmNewUser':form})

Вернуться на верх