我正在try 设置一些POST_SAVE接收器,如下所示

@receiver(post_save, sender=Game, dispatch_uid='game_updated')
def game_updated(sender, **kwargs):

    '''DO SOME STUFF HERE'''

    MyPick.objects.filter(week=game.week, team=game.home_team).update(result=home_result)
    MyPick.objects.filter(week=game.week, team=game.away_team).update(result=away_result)


@receiver(post_save, sender=MyPick, dispatch_uid='user_pick_updated')
def update_standings(sender, **kwargs):
    '''DO STUFF'''

在更新Game对象后,第一个接收器可以正确调用,但是对MyPick对象进行更新的调用不会导致调用第二个接收器.POST_SAVE信号在更新时不起作用还是我在这里遗漏了其他东西?

谢谢

推荐答案

update() is converted directly to an SQL statement;它不会对模型实例调用save(),因此不会发出pre_savepost_save信号.如果希望调用信号接收器,则应该遍历查询集,并针对每个模型实例进行更改,然后自己调用save().

Django相关问答推荐

如果密码在Django中未被散列,则对其进行散列

在Django中使用Generil.ListView类时,分页不起作用

无法在 docker 启动Django项目

如何在Django中显示文件大小

当前路径 **/POST 与其中任何一个都不匹配

Django通用列表视图与多查询搜索

Django prefetch_related 与 3 个不直接相关的模型

从一个组中获取所有用户 - Django

更新或创建异步 Django ORM 实例

在 django HTML 邮箱模板中使用字体

django - 表单没有错误,但 form.is_valid() 没有验证

django REST 框架 - 嵌套 ModelSerializer 的有限查询集?

Django 相当于 COUNT 和 GROUP BY

Django 从字段开始

PyMongo vs MongoEngine for Django

django模板中的vscode html自动格式

Django 删除未使用的媒体文件

清理提交的表单数据中的 HTML

Django中的自定义排序

将 Django Rest Framework 与序列化程序一起使用时出现 AttributeError