您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

何时在Django中使用pre_save,保存,post_save?

何时在Django中使用pre_save,保存,post_save?

我将尽力用一个例子来解释它:

pre_savepost_save信号由模型发送。用简单的话来说,save就是在模型之前或之后调用的动作。

Asave触发以下步骤

Django确实提供了一种覆盖这些信号的方法

现在,

pre_save在实际保存到数据库之前,可以忽略信号进行某些处理-示例:(我不知道pre_save如何在头顶上找到一个理想的例子)

比方说,你有ModelA哪些商店参考所有的对象ModelB已 被编辑呢。为此,您可以注册一个pre_save信号,以便ModelAModelBsave方法调用之前立即进行通知post_save这也不会阻止您注册信号)。

现在,save调用模型的方法(不是信号)-认情况下,每个模型都有一个save方法,但是您可以覆盖它:

class ModelB(models.Model):
    def save(self):
        #do some custom processing here: Example: convert Image resolution to a normalized value
        super(ModelB, self).save()

然后,您可以注册post_save信号(这是更多使用的信号pre_save

常见的用例是在系统中创建UserProfile对象时创建User对象。

您可以注册一个post_save信号,该信号创建一个UserProfile对应User于系统中每个对象的对象。

信号是使事物保持模块化和明确的一种方式。(明确通知ModelAsave或在中进行更改ModelB

我将考虑更具体的现实世界示例,以更好地回答这个问题。同时,我希望这对您有帮助

Go 2022/1/1 18:38:29 有331人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶