Аннотировать с количеством для каждого пользователя, затем упорядочить по дате последнего появления - PullRequest
3 голосов
/ 17 июня 2019

Я хочу получить количество непрочитанных сообщений для каждого 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 Ответ

1 голос
/ 17 июня 2019
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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...