我正在开发一个项目,我在其中实现了像facebook这样的消息传递系统,用户可以相互发送消息。消息页面上还会显示特定线程的未读消息数。
现在我想要的是每次用户登录时在导航栏中显示未读消息的数量(在base.html中都有)。无论何时用户登录,如何执行此操作?
请建议,我不想为此目的使用任何其他应用程序。感谢
答案 0 :(得分:3)
你可以写一个simple tag来为你做这件事。
def unread_messages(user):
return user.messages_set.filter(read=False).count()
#replace the messages_set with the appropriate related_name, and also the filter field. (I am assuming it to be "read")
register.simple_tag(unread_messages)
并在基本模板中:
{% load <yourtemplatetagname> %}
{% if request.user.is_authenticated %}
{{ request.user|unread_messages }}
{% endif %}