在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')
答案 0 :(得分:0)
消息的默认存储引擎现在是用户cookie,这意味着除了当前用户之外,您不能为任何人存储消息。要解决此问题,您可以尝试使用会话后端,获取所需的用户会话并直接在其中编写消息 - 只需检查后端本身如何在其源中实现它并使用相同的方法。
显然,如果您的会话也是基于cookie的,那么这将不起作用。
如果解决方案需要可靠且不依赖于应用程序配置,则需要为消息处理创建基于数据库的自定义解决方案。例如,您可以为messages
框架实现自己的基于数据库的存储引擎。