我的应用程序包含一个通知模块。如果通知是连续从同一用户到达的,我想显示“ n个来自john doe的通知”。
例如:
5 notifications from john doe 2 notification from james 4 notofications from john doe
我如何使用django orm在列中对这些具有相同值的连续行进行计数?
答案 0 :(得分:0)
假设您有一个模型Notifications
和另一个名为User
的模型。然后,您可以按user_id
q=Notifications.objects.filter(user__id=1).values('user__first_name', 'user_id').annotate(c=Count('user__id'))
答案 1 :(得分:0)
就像上述Shafikur的回答一样,但我想您将有一些东西表示该通知是新的或尚未阅读。因此,让我们再添加一个过滤器:
q=Notification.objects.filter(user__id=1, status='new').values('user__first_name', 'user_id').annotate(c=Count('user__id'))
不确定如何跟踪模型中的新通知,因此这只是一个粗略的猜测,应该可以将其应用于特定案例