Django ModelForm - 只想修改save()以使commit = False

时间:2014-03-12 03:07:35

标签: django geodjango django-forms

我正在尝试使用仅包含某些模型字段的ModelForm,以便用户可以提交数据,但我希望将提交的内容通过电子邮件发送给我而不是保存在数据库中,以便我可以检查它们并添加信息保存之前的其余字段。

首先,我想我需要修改save(),以便此模型的默认值为commit = False。

我查看了文档,因为我想要做的就是将此特定模型的默认值更改为commit = False我想知道如何进行简单的修改。如果我可以执行类似下面的操作,然后将实例数据通过电子邮件发送给我自己。

class SK_form(ModelForm):
class Meta:
    model = Soup_Kitchen
    fields = ('name', 'address', 'phone_number', 'contact_person')

def save(self, commit=True):
    instance = super(SK_form, self).save(commit=False)
    return instance

1 个答案:

答案 0 :(得分:0)

我认为这不是你真正想要做的。如果你这样做,数据将不会持久存在。因此,当您收到电子邮件时,您必须将数据剪切并粘贴回Django表单以重新创建实例,然后才能添加自己的数据并进行保存。

最好在模型上有一个布尔字段 - 例如complete - 它记录数据是否已被检查和完成,默认为False。然后,您可以拥有一个自定义管理器,默认情况下会过滤掉所有行= False。