gpt4 book ai didi

python - 从不同用户获取最新消息

转载 作者:行者123 更新时间:2023-11-29 13:54:56 24 4
gpt4 key购买 nike

假设我有两个用户,每个用户都向第三个用户发送了两条消息,如下所示:

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')

这给了我它从每个用户 I.E. 中提取的第一个对象

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 条消息。

我怎样才能得到每个用户的最新消息?

编辑:

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)

最佳答案

您可能无法获得整个 Message 对象,但您可以在 values 中放入任意数量的字段,只要您想在一个语句中完成即可:

from django.db.models import Max
Message.objects.values('message_from').annotate(latest_msg=Max(time_date))

关于python - 从不同用户获取最新消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34133948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com