Django 消息框架 - 消息特定用户



在 Django 1.3 及之前版本中,您可以使用以下方法向特定用户发送消息:

user.message_set.create(message='some message text')

从 Django 1.4 开始,此功能已被删除,取而代之的是消息传递框架。 消息传递框架使用以下语法:

info(request, 'some message text')

我想知道是否可以像旧方法允许的那样为特定用户排队消息,而不仅仅是 request.user 中的用户? 因此,从某种角度来看,我希望能够执行以下操作:

susy = User.objects.get(username='susy')
# send a message to susy even though request.user is john
info(susy, 'some message text')

消息的默认存储引擎现在是用户 cookie,这意味着除了当前用户之外,您无法为任何人存储消息。 要解决此问题,您可以尝试使用会话后端,获取所需用户的会话并直接在那里编写消息 - 只需检查后端本身如何在其源代码中实现它并使用相同的方法。

显然,如果您的会话也是基于 cookie 的,这将不起作用。

如果解决方案需要可靠且不依赖于应用配置,则需要创建基于数据库的自定义解决方案来处理消息。 例如,您可以为messages框架实现自己的基于 db 的存储引擎。

最新更新