gpt4 book ai didi

python - Google 应用引擎 - 订购列出的项目

转载 作者:行者123 更新时间:2023-12-01 04:32:32 25 4
gpt4 key购买 nike

我需要您的帮助来订购列出的商品。我正在尝试制作可以向他/她的 friend 发送消息的应用程序(就像社交提要一样)。看完Bret Slatkin谈论创建微博这是我的代码:

class Message(ndb.Model):
content = ndb.TextProperty()
created = ndb.DateTimeProperty(auto_now=True)

class MessageIndex(ndb.Model):
receivers = ndb.StringProperty(repeated=True)

class BlogPage(Handler):
def get(self):
if self.request.cookies.get("name"):
user_loggedin = self.request.cookies.get("name")
else:
user_loggedin = None

receive = MessageIndex.query(MessageIndex.receivers == user_loggedin)
receive = receive.fetch()

message_key = [int(r.key.parent().id()) for r in receive]

messages = [Message.get_by_id(int(m)) for m in message_key]

for message in messages:
self.write(message)

首先,我进行查询以获取接收器中包含我名字的所有消息。 MessageIndex 是 Message 的子级,然后我可以获得收到的所有消息的 key 。最后是我使用得到的消息 key 列表迭代 get_by_id 。

这工作正常,但我想按创建日期时间过滤每条消息,这就是问题所在。最终输出是列出的项目,无法使用 .order 或 .filter 进行排序

也许你们中的一些人可以照亮我。

最佳答案

您可以在消息查询的“IN”子句中使用消息键。请注意,在这种情况下,您将需要使用parent()键值,而不是id()。

例如:

# dtStart, dtEnd are datetime values
message_keys = [r.key.parent() for r in receive]
query = Message.query(Message._key.IN(message_keys), Message.created>dtStart, Message.created<dtEnd)
query = query.order(Message.created) # or -Message.created for desc
messages = query.fetch()

我不确定您是否希望简单地按消息创建日期排序,或者是否希望使用日期进行过滤。以上两个选项均已满足。

关于python - Google 应用引擎 - 订购列出的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32174295/

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