2

在 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')
4

1 回答 1

0

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

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

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

于 2012-04-19T07:12:10.427 回答