Ошибки формы UserCreationForm в Django не работают?

несколько месяцев назад я сделал сайт, где все работало, но похожий код в этот раз не работает! он возвращает : ValueError at /registration/ Пользователь не может быть создан, потому что данные не прошли валидацию. вот мой form.py в самом низу:

class CreateUserForm(UserCreationForm):
    class Meta:
        model = User
        fields = ["username", "email", "password1", "password2"]

мои взгляды:

from .form import CreateUserForm

def registrationPage(request):
    form = CreateUserForm()
    if request.method == "POST":
        form = CreateUserForm(request.POST)
        if form.is_valid:
            form.save()
            return redirect("login")
        else:
            form = CreateUserForm()

    context = {"form": form}
    return render(request, "store/registration.html", context)

В HTML ранее я использовал :

{{form.errors}}

& раньше он показывал мне работу на странице, но теперь нет

Когда вы получите эту ошибку, сделайте следующее:

  1. Вы должны ввести надежный пароль, который предоставляется Django.

правила проверки пароля:

At least 1 digit;
At least 1 uppercase character;
At least 1 lowercase character;
At least 1 special character;

например:

 Example@4089
  1. Эта ошибка возникнет при подтверждении пароля, вы должны ввести правильный пароль в оба поля.

  2. Вы столкнетесь с этой ошибкой, если пользователь уже существует.

  3. вы должны проверить существование пользователя при создании пользователя, если пользователь существует, то возникнет эта ошибка.

Согласно вашему комментарию выше ("я хочу, чтобы django показывал сообщения об ошибках"[если пароль слабый в примере]), вы должны добавить это в вашу html страницу (вместо {{form.errors}}).

<div class="error-message">
     {% if form.non_field_errors %} 
                        
        {% for error in form.non_field_errors %}
           <p style="font-size: 13px;">
              {{ error|escape }}
           </p>
       {% endfor %} 
                        
     {% endif %}
 </div>

Form.non_field_errors() Этот метод возвращает список ошибок из Form.errors, которые не связаны с определенным полем. Сюда входят ValidationErrors, возникающие в Form.clean(), и ошибки, добавленные с помощью Form.add_error(None, "...").

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