Возвращает единственный экземпляр сообщения django

я пытаюсь создать систему обмена сообщениями p2p в моем приложении чата (не используя каналы), поэтому в моем view.py я вывожу список всех сообщений, но я не хочу, чтобы он выводил несколько сообщений от одного пользователя, только самые последние, к сожалению, он делает прямо противоположное, если выводит все сообщения между двумя людьми вместо только самых последних,

я попробовал создать разные модели, чтобы я мог фильтровать по ним и добавить функцию distinct, но все равно ничего не получилось, я очень хочу сделать это к Рождеству, поэтому я благодарен за любую помощь

views.py

def pmpage(request):
     user = recceiver.objects.get(id=request.user.id)
     all_message = pm.objects.filter(recepient=user).distinct()
     unread = pm.objects.filter(recepient=user, unread=True).order_by('sender').distinct()
     sent =  pm.objects.filter(sender=request.user)
     context = {
          'all_message' : all_message,
          'unread' : unread,
          'sent' : sent,
     }
     return render(request, 'message.html', context)

models.py

class recceiver(models.Model):
    name = models.ForeignKey(User, on_delete=models.CASCADE)

    def __str__(self):
        return str(self.name)

class pm(models.Model):
    sender = models.ForeignKey(User, related_name='sender', on_delete=models.CASCADE)
    recepient = models.ForeignKey(recceiver, related_name='recceiver', on_delete=models.CASCADE, null=True, blank=True)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    body = models.TextField()
    unread = models.BooleanField(default=False)

    def __str__(self):
        return f'{self.body}'

Спасибо еще раз

Вернуться на верх