我不确定这是否是最好的方法,但我有一些数据是通过表单发送的。我有一个 ModelForm,它采用该表单数据的 request.POST。发送的所有数据都是描述、金额和存款( bool 值)。
当此人提交数据时,金额将是一个正数,但如果 deposit 为 False,我想将其作为负数存储在数据库中。
我正在考虑在 Model 或 ModelForm 中执行此操作,并在保存之前进行一些按摩......因此,在其中一个类中的某个地方,我想要类似的东西:
if not deposit:
amount = -amount
...然后按原样保存。
有没有办法在 ModelForm 或 Model 中处理这个问题,让我不必在 View 中执行所有这些逻辑?
请您参考如下方法:
ModelForm 的 save() 方法是一个很好的地方:
class MyForm(models.ModelForm):
...
def save(self):
instance = super(MyForm, self).save(commit=False)
if not self.deposit:
self.amount = -self.amount
instance.save()
return instance
