0

Google App Engineで、次のようにndbクエリの条件を作成できるかどうか知りたいです。次のコードがあるとします。

if bidded == '':
    productRanks = Product.query(Product.bidTime>=startDate,
                                 Product.bidTime<endDate).fetch()         
elif bidded == 'yes':
    productRanks = Product.query(Product.bidTime>=startDate
                                 Product.bidTime<endDate,
                                 Product.bidded=='yes').fetch()
else:
    productRanks = Product.query(Product.bidTime>=startDate
                                 Product.bidTime<endDate,
                                 Product.bidded=='no').fetch()

本当に散らかっています。仮に、次のことができるようにしたいと思います。出来ますか?はいの場合、どのように?

condition = 'Product.bidTime>=startDate, Product.bidTime<endDate'
if bidded = 'yes':
    condition = condition + ', Product.bidded=='yes'
elif bidded == 'no':
    condition = condition + ', Product.bidded=='no'
productRanks = Product.query(condition).fetch()
4

1 に答える 1

2

あなたは本当にあなたに多くの時間を節約するであろうドキュメントを読むのにいくらかの時間を費やすべきです。

https://developers.google.com/appengine/docs/python/ndb/queries#filter_by_propを参照して ください。 このセクションを読むと、フィルターを追加し続けることができることが明確に示されています。ドキュメントから、例はかなり明確です。

qry1 = Account.query() # Retrieve all Account entitites
qry2 = qry1.filter(Account.userid >= 40) # Filter on userid >= 40
qry3 = qry2.filter(Account.userid < 50) # Filter on userid < 50 as well

また、新しいクエリを作成し続ける必要はありません。同じ変数を再バインドし続けるだけです。

于 2013-03-12T03:16:14.350 に答える