Возвращает единственный экземпляр сообщения 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}'
Спасибо еще раз