gpt4 book ai didi

django - 在 django 中调用 create 时是否隐式调用了 save()?

转载 作者:行者123 更新时间:2023-11-28 19:36:01 25 4
gpt4 key购买 nike

我正在尝试对模型执行一些自定义验证,但我感到很困惑。让我具体一点。假设我的代码如下:

class FooManager(models.Manager):
def create_foo(self, name):
return self.create(foo_name = name)

class Foo(models.Model):
foo_name = models.CharField(max_length=30)
objects = FooManager()

def clean(self):
...
def save(self, *args, **kwargs):
self.full_clean()
super(User, self).save(*args, **kwargs)

现在,当我在 shell 中使用这个模型时,如果我调用:

f = Foo.objects.create_foo("")

在我有机会调用 f 上的 save() 之前,它会引发验证错误。为什么会这样?验证错误不应该只在我调用 f.save() 时引发吗?

注意:如果我使用 objects.create() 而不是自定义的创建方法,也会发生同样的事情。任何帮助将不胜感激,因为我发现 django 中的验证非常令人沮丧。

最佳答案

create()将自动保存,因此即使您修复了错误 - 您仍然必须确保创建的参数满足数据库要求以保存记录。

关于django - 在 django 中调用 create 时是否隐式调用了 save()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15726553/

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