Предположим, что у меня есть два пользователя, которые каждый посланные два сообщения третьему пользователю, как так:Получение последнего сообщения от отдельного пользователя
This is the first message from user 1
This is the second message from user 1
This is the first message from user 2
This is the second message from user 2
Я пытаюсь выбрать самое последнее сообщение от каждого пользователя из моей PostgreSQL базы данных с этим:
messages = Message.objects.filter(message_to=request.user).distinct('message_from')
Это дает мне первый объект он вытягивает от каждого пользователя, IE
This is the first message from user 1
This is the first message from user 2
Пока я хочу второй.
Я пробовал messages = Message.objects.filter(message_to=request.user).distinct('message_from', 'time_date').order_by( '-time_date')
, чтобы отсортировать их, но это дает мне все 4 сообщения.
Как я могу получить последнее сообщение от каждого отдельного пользователя?
EDIT:
Модель Message
:
class Message(models.Model):
message_from = models.ForeignKey(User, related_name="%(class)s_message_form")
message_to = models.ForeignKey(User, related_name="%(class)s_message_to")
message = models.TextField()
files = models.ForeignKey(File, blank=True, null=True)
read = models.BooleanField(default=False)
time_date = models.DateTimeField(default=django.utils.timezone.now)
Можете ли вы показать код для своей модели сообщений? Может быть полезно. –
Я добавил код для модели целиком. – Nanor