当对装置使用 loaddata 时,是否会调用模型的 save() 方法?

发布于 2024-12-22 06:40:33 字数 532 浏览 6 评论 0原文

我试图在模型为空时从另一个字段自动生成一个模型。这是代码:

class Position(RichText):
    name = models.CharField(max_length=200)
    slug = models.SlugField(null=True)

    def position_description(self):
        return self.content

    def __unicode__(self):
        return self.name

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.name)

        super(Position, self).save(*args, **kwargs)

当我使用 loaddata 加载初始装置时,似乎永远不会触发 save() 方法。这是正常行为吗?我怎样才能捕捉固定装置?

I'm trying to generate an automatic slug for a model whenever it is empty, from another field. This is the code:

class Position(RichText):
    name = models.CharField(max_length=200)
    slug = models.SlugField(null=True)

    def position_description(self):
        return self.content

    def __unicode__(self):
        return self.name

    def save(self, *args, **kwargs):
        if not self.slug:
            self.slug = slugify(self.name)

        super(Position, self).save(*args, **kwargs)

When I load initial fixtures with loaddata, it seems the save() method is never triggered. Is this normal behavior? How can I catch fixtures too?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑叹一世浮沉 2024-12-29 06:40:33

这是正常行为,来自文档 :

处理夹具文件时,数据将保存到数据库中:
是。不调用模型定义的保存方法和 pre_save 信号

This is normal behavior, from the documentation:

When fixture files are processed, the data is saved to the database as
is. Model defined save methods and pre_save signals are not called

.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文