python - 如何配置将 json 对象发送到 Django Channels?

标签 python django django-channels

如何配置将 json 对象发送到 Django Channels?确保在管理面板中添加新对象时,它立即实时显示在前面。也许有人有任何例子。将不胜感激。

有一个工厂对象:

模型.py

class Factory(models.Model):

     OBJECT_CHOICES = (
            ('Завод', 'Завод'),
            ('Вышка', 'Вышка'),
            ('Хранилище', 'Хранилище'),
            ('АЗС', 'АЗС')
        )

    title = models.CharField(max_length=200)
    choice = models.CharField(max_length=15, choices=OBJECT_CHOICES, default = '')
    address = YmapCoord(max_length=200, start_query=u'Россия', size_width=500, size_height=500, unique = True)

当向/getFactory/发出GET请求时,发出JSON类型

[
   {
    "title": "factory",
    "choice": "Завод",
    "address": [
        55.744607932133505,
        48.99357300960071
    ]
   }
]

最佳答案

首先,你需要一个consumer您应该在那里定义groups字段。

A WebsocketConsumer’s channel will automatically be added to (on connect) and removed from (on disconnect) any groups whose names appear in the consumer’s groups class attribute.

然后你的前端应该以某种方式连接到消费者并监听更新。 完成后,您可以从项目的任何位置发送新消息。例如,来自 post_save 信号。

from channels import Group
from django.db.models import signals
from django.dispatch import receiver


@receiver(signals.post_save, sender=Factory)
def notify_group(sender, instance, **kwargs):
    if kwargs['created']:
        group_name = 'your group'
        Group(group_name).send({'text': 'message or object'})

关于python - 如何配置将 json 对象发送到 Django Channels?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52191246/

相关文章:

python - 如何在不刷新的情况下显示从服务器推送到网页的更新?

python - 如何链接Django中保存在不同位置的两个对象

python - 模块未找到错误 : No module named 'requests_html'

python - 覆盖应用程序的静态文件?

python - Django ModelForm booleanfield 必填字段不起作用

python - 在 Django 中使用 ManyToMany 插入对象

python - 如何读取 Abaqus .mtx 文件? Scipy.io.mmread 给出 'not enough values to unpack' 错误

python - 在 QtDesigner GUI 中嵌入 matplotlib 图

Python 比较字典中的不同值

websocket - 从消费者外部收听 django channel channel_layer