执行POST'UserCreationForm'对象时没有属性'is_vaild'时出错

时间:2018-11-27 14:34:29

标签: python django forms attributes django-2.1

我是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 :(得分:0)

正如Abdul Niyas所说,将is_vaild更改为is_valid

答案 1 :(得分:0)

请记住,如果表单无效,您仍然需要发送一些信息!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})