我调用is_valid后可以设置ModelForm的实例吗?

时间:2014-05-20 12:54:20

标签: django django-forms

我的ModelForm的一个自定义字段包含要编辑的数据库行的pk。因此,我想首先检查表单是否有效,然后使用已清理的pk字段设置实例,然后保存表单。它甚至可能吗?

我现在的解决方法是创建一个新的ModelForm实例,它不是很整洁。

1 个答案:

答案 0 :(得分:2)

如果您的表单覆盖了实例中的所有信息,您只需手动设置主键:

if form.is_valid():
    obj = form.save(commit=False)
    obj.pk = form.cleaned_data['pk_to_edit']
    obj.save()
    return ...