python中save函数,在Django中把save函数写在哪里?

这取决于你想达到什么目标。ModelForm的save调用Model的save的默认实现。但通常最好在form上重写它,因为它还运行验证。所以如果您已经在使用form,我建议重写ModelForm.save。重写是指使用super进行扩展

以下是ModelForm.save的默认实现def save(self, commit=True):

"""

Save this form's self.instance object if commit=True. Otherwise, add

a save_m2m() method to the form which can be called after the instance

is saved manually at a later time. Return the model instance.

"""

if self.errors: # there validation is done

raise ValueError(

"The %s could not be %s because the data didn't validate." % (

self.instance._meta.object_name,

'created' if self.instance._state.adding else 'changed',

)

)

if commit:

# If committing, save the instance and the m2m data immediately.

self.instance.save()

self._save_m2m()

else:

# If not committing, add a method to the form to allow deferred

# saving of m2m data.

self.save_m2m = self._save_m2m

return self.instance

save.alters_data = True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值