Я пытаюсь отсортировать список объектов тикетов, внутри которых есть чаты, по количеству непрочитанных сообщений в этих чатах. Читая документацию по агрегации Django окончательно запутался.
Есть модели:
class Ticket(models.Model):
name = models.CharField(max_length=100)
user = models.ForignKey(AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="tickets")
class Chat(models.Model):
name = models.CharField(max_length=100)
participants = models.ManyToManyField(AUTH_USER_MODEL, related_name="chats")
ticket = models.ForignKey("tickets.Ticket", on_delete=models.CASCADE)
class Message(models.Model):
user = models.ForignKey(AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True)
chat = models.ForignKey("tickets.Chat", on_delete=models.CASCADE)
text = models.TextField()
read = models.BooleanField(default=False)
Мне нужно отсортировать список тикетов пользователя по количеству непрочитанных сообщений отправленных
НЕ ЭТИМ ПОЛЬЗОВАТЕЛЕМ в чатах, где в
participants
есть этот пользователь в порядке убывания.
Как сделать это не прибегая к RawSQL?