如何将 Django 频道会话分配给 ORM 中的对象?

Posted

技术标签:

【中文标题】如何将 Django 频道会话分配给 ORM 中的对象?【英文标题】:How to assign a Django channel session to an object in ORM? 【发布时间】:2017-12-09 21:29:10 【问题描述】:

我有远程应用程序连接到运行 Channels 的 Django 并打开 websocket 连接。我不使用组。打开 websocket 的原因只是为了获得来自 Django 的推送通知。 如果我想向用户打开的 websocket 连接推送通知,如何找到打开的连接(其回复通道)?

【问题讨论】:

【参考方案1】:

使用默认设置,我可以获得 reply_channel 字符串 在 websocket.connect 处理程序中:

channel = message.reply_channel.name

加上扩展的用户模型(user.channel),我可以将该频道存储给特定用户。

user = message.user
user.channel_string = channel

然后我从 HTTP 获取特定用户的用户通道。这是从层管理中获得的 Channel 对象的键:

from channels.channel import Channel

channel_string = user.channel_string
channel = Channel(channel_string)
channel.send(something)

【讨论】:

以上是关于如何将 Django 频道会话分配给 ORM 中的对象?的主要内容,如果未能解决你的问题,请参考以下文章

如何将会话值分配给变量

如何从资产中获取不同的图像并将其分配给不同表格视图单元格中的图像视图

在 discord.js 中将频道分配给类别

Tornado WebSocket 与 Django ORM 与共享会话

React,Django:用户更改密码后如何管理会话?

DJANGO - 仅针对模型中的某些对象将管理面板的权限分配给用户