Пытаюсь сделать сортировку чатов по последнему сообщению(последнее сообщение вверху списка).
Модель
class Chat(models.Model):
creater = models.ForeignKey(User, on_delete=models.CASCADE)
members = models.ManyToManyField(User, verbose_name="Участник", related_name='members', default=User)
class Message(models.Model):
author = models.ForeignKey(User, verbose_name="Отправитель", on_delete=models.CASCADE)
recipient = models.ForeignKey(Chat, related_name='received_messages', verbose_name="Получатель", on_delete=models.CASCADE)
view
body_chat = body_chat.order_by('-received_messages__pk')
for chat in body_chat:
chat_id = get_object_or_404(Chat, id=chat.id)
message = Message.objects.order_by('-pk').filter(recipient=chat_id)[0:1]
chat.message = message
Шаблон
{% for chat in body_chat %}
<h7>Вы: {{ chat.message.0.content }}</h7>
{% endfor %}
При такой сортировке, на каждое отправленное сообщение, шаблон создает новый чат. Но если делать сортировку например вот так : body_chat = Chat.objects.filter(members=request.user).order_by('-pk') то он ничего лишнего не создает, но сортировка идет соответственно по pk.
Как можно устранить?