django - form.cleaned_data []用于模型

时间:2017-06-19 12:21:19

标签: python mysql django forms

我正在使用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')

2 个答案:

答案 0 :(得分:1)

你不应该遍历这些字段。您使用的是模型表单,因此您只需save表单:

sn(0.5,-1)

如果您确实需要动态设置字段,可以使用setattr

if form.is_valid():
    obj = form.save()
    ...

答案 1 :(得分:0)

您可以在保存之前获取数据实例:

if form.is_valid():
    obj = form.save(commit=False) #get instance without saving
    # do your thing
    obj.save() #save into database