我在尝试使用python日期对象来过滤NDB查询中的DateTimeProperty时遇到了一些困难。我意识到DateTimeProperty(some_date)没有date属性,但是我可以做的事情看起来如下:
cls.query(supplied_date == cls.some_date.date).fetch()
答案 0 :(得分:2)
如果不改变你的模型,这是不可能的。
最简单的选择是在datetime属性上使用两个不等式过滤器(> date 00:00和< = date 23:59),但是你不能在查询中使用任何其他不等式。
(an?)其他选项是引入第二个属性,其中包含您筛选的日期值:
class YourModel(ndb.Model):
some_datetime = ndb.DateTimeProperty()
some_date = ndb.ComputedProperty(lambda self: self.some_datetime.date)
如果您只需要按日期过滤,那么您的日期时间属性可以有indexed=False
,否则您将需要额外索引的费用。