5

Python の日付オブジェクトを使用して、NDB クエリで DateTimeProperty に対してフィルター処理を行うのに苦労しています。DateTimeProperty (some_date) には日付プロパティがないことに気付きましたが、次のように簡単にできることはありますか?

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

1 に答える 1

3

モデルを変更せずにそれは不可能です。

最も簡単なオプションは、datetimeプロパティ(>date00:00および<=date23:59)で2つの不等式フィルターを使用することですが、クエリで他の不等式を使用することはできません。

(?)他のオプションは、フィルタリングする日付値を含む2番目のプロパティを導入することです。

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

日付でフィルタリングする必要があるだけの場合は、datetimeプロパティにを含めることができますがindexed=False、それ以外の場合は、追加のインデックスのコストが発生します。

于 2013-03-13T18:52:55.023 に答える