首页 > 解决方案 > 根据 Django 通道中的数据库事件向用户发送数据

问题描述

我在 Django 中有一个应用程序,一些用户可以添加和更新数据。这些用户使用 Django 标准表单和视图添加或更新数据。

我想实现另一个应用程序,当用户在数据库中更新或创建数据时向所有用户发送新数据。我阅读了有关可以处理 Web 套接字的 Django 通道,但我在 Django 通道中找不到有关服务器或数据库事件的信息。

那么当数据库事件发生时如何向用户发送数据呢?

标签: djangodjango-channels

解决方案


您可以使用 Signals 来检测 Django 中的数据库事件。看看这里解释的信号:https ://docs.djangoproject.com/en/2.1/topics/signals/

基本上,您将按照以下方式做一些事情:

@receiver(post_save, sender=ModelClass)
def my_model_save(sender, instance, **kwargs):
     # this code will be executed after an instance of ModelClass is saved.
     Group(rate_key).send({
            "text": "my message"
     })

推荐阅读