我正在做的事情是了解表单是在创建新记录还是更新现有记录
class MyForm(forms.ModelForm):
def save(self, commit=True):
_new = True if not self.instance.id else False
keyword = super(MyForm, self).save()
if _new:
do_something()
return keyword
在调用 super(MyForm, self).save() 之后是否有其他方法可以找到它,而无需在调用“super”之前明确检查它,就像我对“_new”所做的那样?
最佳答案
它只是 .id
(实际上是 .pk
)字段。如果它是 None
(可能是任何“虚假”值),那么它就是一个新记录并且 .save()
将使用 INSERT
。否则它是现有记录的键,它将使用 UPDATE
。
https://docs.djangoproject.com/en/1.8/ref/models/instances/#how-django-knows-to-update-vs-insert
关于django - 如果模型表单正在创建新记录或更新现有记录,有没有办法在表单 .save() 方法中找到?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28433486/