我想在我的django应用程序中只向注册用户显示一次各种消息。我发现django-announcements似乎做了我想做的事情 - 但我发现在测试中它通过使用会话变量将消息标记为已读,如果用户注销则会消失。这意味着如果用户在登录,注销,然后再次登录时将其解除,则会再次向用户显示该消息。
我想知道是否有人知道我可以在这里使用的应用程序,而无需重新发明轮子。
答案 0 :(得分:3)
看看django-notification。它被pinax使用,它看起来像你正在寻找的工作。至少它将状态保存在db。
中对评论的回应
来自docs:
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})
答案 1 :(得分:0)
你看过Django 1.3中的Messages Framework吗?在Django< = 1.2中,这是一个简单的模型,你可以这样做:
for user in User.objects.all():
user.message_set.create(message="some text")
这将在模板中呈现,并在加载下一页时立即解散(这是Django管理员使用的)。它在1.3中有所改变,但它可能很方便,但不像你想要的那样“可以忽略”。