google-app-engine – 如何在NDB查询中将python日期与DateTimeProperty进行比较

我在尝试使用
python日期对象来过滤NDB查询中的DateTimeProperty时遇到了一些困难.我意识到DateTimeProperty(some_date)没有date属性,但是我可以做的事情看起来如下:

cls.query(supplied_date == cls.some_date.date).fetch()

最佳答案 没有改变你的模型是不可能的.

最简单的选择是在datetime属性上使用两个不等式过滤器(>日期00:00和< =日期23:59),但是您不能在查询中使用任何其他不等式. (??)其他选项是引入第二个属性,其中包含您筛选的日期值:

class YourModel(ndb.Model):
  some_datetime = ndb.DateTimeProperty()
  some_date = ndb.ComputedProperty(lambda self: self.some_datetime.date)

如果您只需要按日期过滤,那么您的datetime属性可以索引= False,否则您将获得额外索引的成本.

点赞