gpt4 book ai didi

python - Django 检查表单是否有效()

转载 作者:太空宇宙 更新时间:2023-11-04 02:35:33 24 4
gpt4 key购买 nike

我正在尝试复制

if form.is_valid():

使用 django 表单向导。 (这个问题应该和 Sprite 没有关系)

我有这个代码:

class ContactWizard(SessionWizardView):

def get_template_names(self):
return [TEMPLATES[self.steps.current]]

def done(self, form_list, **kwargs):
if self.request.method == 'POST':
print(form_list)
process_form_data(form_list)
return HttpResponseRedirect('../home')

def process_form_data(form_list):
if form.is_valid():
form_data = [form.cleaned_data for form in form_list]

first_name = form_data[0]['first_name']
last_name = form_data[0]['last_name']
email = form_data[0]['email']

fav_food = form_data[0]['fav_food']
fav_drink = form_data[0]['fav_drink']

user = User.objects.create_user(email)
user.first_name = first_name
user.last_name = last_name
user.email = email
user.save()

user_addon = UserAddon.objects.create(user=user,fav_food=fav_food,fav_drink=fav_drink)
user_addon.save()

return form_data

如果我打印出 form_list 我会得到这个

odict_values([<UserAddonForm bound=True, valid=True, fields=(fav_food;fav_drink;first_name,last_name;email)>,ContactForm3 bound=True, valid=True, fields=(info1;info2;message)>])

如果我试着用

运行它
form.is_valid() 

我明白了

Exception Value: name 'form' is not defined

我怎样才能得到 form.is_valid() 的等价物?

谢谢

最佳答案

您正在将 form_list 传递给函数 process_form_data,但要检查名称 form(通过 form.is_valid() ) 此时不存在。

假设 form_list 是可迭代的,您可以迭代它并按顺序处理表单:

def process_form_data(form_list):
for form in form_list:
if form.is_valid():
form_data = form.cleaned_data
first_name = form_data[0]['first_name']
last_name = form_data[0]['last_name']

关于python - Django 检查表单是否有效(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48012463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com