django cleaned_data [帮助]

0 投票
1 回答
1245 浏览
提问于 2025-04-16 02:32

好的,我遇到了一个问题,我查了很多地方,但找不到解决办法...

假设我有以下的 forms.py 文件:

from django import forms

class LoginForm(forms.Form):
    _username = forms.CharField()
    _password = forms.CharField()

在 views.py 文件中,我有:

def index(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
    else:
        form = LoginForm()

    if form.is_valid:
        username = form.cleaned_data['_username']
        password = form.cleaned_data['_password']
        if check_credential(username, password):
            request.session['_username'] = username
            request.session['_password'] = password

我使用的是

void@void:~$ django-admin --version

1.1.1

我正在用《Django书》来学习 Django,但他们用的是一个旧版本的 Django,里面有 clean_data ...我尝试使用

from django import newforms as forms 

但结果还是一样...

'LoginForm' object has no attribute 'cleaned_data'

1 个回答

7

form.is_valid 是一个函数。你可以这样使用它:

if form.is_valid():
    # actions

只有在 is_valid() 这个函数内部调用了每个字段自己的清理方法之后,表单才会有一个叫 cleaned_data 的字典。

撰写回答