用每个用户的计数进行注释,然后按最新出现的日期排序

时间:2019-06-17 07:47:33

标签: python django

我想获取每个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)

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

输出查询集:

enter image description here

1 个答案:

答案 0 :(得分:1)

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')