gpt4 book ai didi

django - 如果模型表单正在创建新记录或更新现有记录,有没有办法在表单 .save() 方法中找到?

转载 作者:行者123 更新时间:2023-12-02 08:29:41 25 4
gpt4 key购买 nike

我正在做的事情是了解表单是在创建新记录还是更新现有记录

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com