首页 > 解决方案 > 为每个用户添加计数注释,然后按最近发生的日期排序

问题描述

我想获取按user_from她/他的最后一条消息的日期排序的每条未读消息的计数。

class Chat(models.Model):
    user_from = models.ForeignKey(settings.AUTH_USER_MODEL)
    user_to = models.ForeignKey(settings.AUTH_USER_MODEL)
    is_read = models.BooleanField(default=False)
    added_on = models.DateTimeField(auto_now_add=True)
    message = models.CharField(max_length=255)

我正在寻找一些这样的查询集输出:

输出查询集:

在此处输入图像描述

标签: pythondjango

解决方案


from django.db.models import Count, Max
query_set = Chat.objects.values('user_from').annotate(unread_count=Count('user_from')).filter(is_read=False).annotate(last_time=Max('added_on')).order_by('-last_time')

推荐阅读