gpt4 book ai didi

python - 当一组更改时更改模型

转载 作者:行者123 更新时间:2023-11-30 23:25:31 24 4
gpt4 key购买 nike

我有一个模型,我们称之为Post。我有另一个模型,我们称之为Comment。一条评论可以有很多帖子。换句话说,它看起来有点像这样:

class Comment(models.Model):

post = models.ForeignKey('app.Post', blank=True, null=True)

我的 Post 模型有一个 last_modified 字段,如下所示

class Post(models.Model):

last_modified = models.DateTimeField(auto_now=True)

当我直接对 Post 进行更改时,上次修改的时间戳很容易更新。但是,我需要 last_modified 来反射(reflect)模型的 comment_set 何时发生更改 - 换句话说,何时添加 Comment

我想将这个逻辑保留在 Post 模型本身中,而不是必须将其添加到 Comment 的保存方法或类似的方法中,这样我就可以保持模型尽可能干净。是否有任何功能类似于 Django 的 m2m_changed 模型,允许我在 Post 的评论集发生更改时更新 last_modified?

最佳答案

为此,您应该使用 Django signals 进行调查。具体来说,模型可以发送 post_save 信号,指示模型保存何时完成。在您的情况下,您可能应该编写一个函数来接收 Comment 已保存的信号。

在该函数的主体内部,您将更新关联的 Postlast_modified。通过这种方式,您基本上定义了一个在数据库更新时运行的 python 触发器。

关于python - 当一组更改时更改模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22970730/

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