Ошибка при выполнении POST-объекта UserCreationForm не имеет атрибута is_vaild - PullRequest
0 голосов
/ 27 ноября 2018

Я учусь на Django, и я пытался создать форму регистрации пользователя, используя встроенную версию UserCreationForm.

view.py

from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm

def register(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_vaild():
            username = form.cleaned_data['username']
            return redirect('blog-home')
    else:
        form = UserCreationForm()

    return render(request, 'users/register.html',{'form':form})

При попытке POST я получаю 'UserCreationForm' object has no attribute 'is_vaild'.Если я правильно понимаю для всех форм django, будет функция is_valid для проверки.

Пожалуйста, помогите мне найти то, что мне здесь не хватает.

Дайте мне знать, если вам нужны какие-либо другие сведения о файле.

Я использую Django 2.1, Python 3.6

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Помните, что вам все равно нужно что-то отправить на случай, если форма недействительна! Form.is_valid () добавила несколько строк в ваш код, кстати, вы просто неправильно набрали is_valid ()

def register(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data['username']
            return redirect('blog-home')
        else:
            # Show user form errors with {% form.errors %} on the template.
            return render(request, 'users/register.html', {'form': form})
    else:
        form = UserCreationForm()

    return render(request, 'users/register.html',{'form':form})
0 голосов
/ 27 ноября 2018

Как сказал Абдул Нияс, измените is_vaild на is_valid.

...