【发布时间】:2017-06-19 12:21:19
【问题描述】:
我正在使用 django 将表单数字化。这个表格有点复杂,里面有很多字段。我想知道 Django 是否可以为所有字段执行 form.cleaned_data[],而不是为每个字段分开声明像 obj.fieldname = form.cleaned_data['fieldname'] 这样的变量。
我在 views.py 中使用 forloop 进行了尝试,但这不起作用
这就是我说的forloop:
def get_form_naw(request):
if request.method == 'POST':
form = Form1(request.POST)
if form.is_valid():
for x in Model1():
formname = x.name
o = Model1()
o.formname = form.cleaned_data[formname]
o.save()
else:
form = Form1
return render(request, 'folder/home.html', context=locals())
我正在使用 mysql 数据库。我的表格是这样声明的: forms.py
class Form1(forms.ModelForm):
class Meta:
model = Model1
exclude = ('id')
【问题讨论】:
-
您可以直接保存表单来创建对象。为什么需要逐字段创建对象?
-
您的排除项缺少尾随逗号,即
('id',)。但是,您不需要排除id字段,因为默认情况下不会包含它。