django网站范围广告的可重复使用的应用程序,每个用户只显示一次消息

时间:2009-12-02 00:26:50

标签: python django code-reuse pinax

我想在我的django应用程序中只向注册用户显示一次各种消息。我发现django-announcements似乎做了我想做的事情 - 但我发现在测试中它通过使用会话变量将消息标记为已读,如果用户注销则会消失。这意味着如果用户在登录,注销,然后再次登录时将其解除,则会再次向用户显示该消息。

我想知道是否有人知道我可以在这里使用的应用程序,而无需重新发明轮子。

2 个答案:

答案 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中有所改变,但它可能很方便,但不像你想要的那样“可以忽略”。