我只想在我的 django 应用程序中向注册用户显示各种消息。我发现django-announcements 似乎可以满足我的要求 - 但我在测试中发现它使用会话变量将消息标记为已读,如果用户注销,该变量就会消失。这意味着如果用户在登录、注销然后再次登录时将其关闭,则会再次向用户显示一条消息。
我想知道是否有人知道我可以在这里使用而无需重新发明轮子的应用程序。
我只想在我的 django 应用程序中向注册用户显示各种消息。我发现django-announcements 似乎可以满足我的要求 - 但我在测试中发现它使用会话变量将消息标记为已读,如果用户注销,该变量就会消失。这意味着如果用户在登录、注销然后再次登录时将其关闭,则会再次向用户显示一条消息。
我想知道是否有人知道我可以在这里使用而无需重新发明轮子的应用程序。
看看django-notification。它由 pinax 使用,它似乎像您正在搜索的那样工作。至少它将状态保存在数据库中。
对评论的回应
来自文档:
notification.send([to_user], "friends_invite", {"from_user": from_user})
所以这应该工作:
notification.send(Users.objects.all(), "friends_invite", {"from_user": from_user})
如果查询集不正确:
notification.send([u for u in Users.objects.all()], "friends_invite", {"from_user": from_user})
你看过Django 1.3中的消息框架吗?在 Django <=1.2 中,这是一个简单的模型,因此您可以这样做:
for user in User.objects.all():
user.message_set.create(message="some text")
这将在模板中呈现,并在下一页加载后立即关闭(这是 Django 管理员使用的)。它在 1.3 中发生了一些变化,但它可能很方便,但不能以您想要的方式“解雇”。