嗨即時試圖找出如何構建我的查詢以下情況NDB在查詢GenericProperty重複Expando的StructuredProperty
首先我有一個模型中定義
class Variant(ndb.Expando):
test = ndb.StringProperty()
class Item(ndb.Model):
test2 = ndb.StringProperty()
variants = ndb.StructuredProperty(Variant, repeated=True)
variant = Variant(test="test", dynamic="a")
item = Item(test2="test", variants=[variant, ])
item.put()
,然後查詢的東西..到目前爲止,我已經試過
dynamic = "dynamic"
Item.query(ndb.GenericProperty("variants.%s" % dynamic) == "a")
Item.query(Item._properties["variants.%s" % dynamic] == "a")
Item.query(getattr(Item.variants, dynamic) == "a")
Item.query(getattr(Item, "variants.%s" % dynamic) == "a")
Item.query(ndb.query.FilterNode("variants.%s" % dynamic, "=", "a"))
generic_prop = ndb.GenericProperty()
generic_prop._name = "variants.%s" % dynamic
Item.query(generic_prop == "a")
,沒有這些作品的。這應該是完全可能的,因爲數據存儲中的屬性名稱是
variants.dynamic = ["a", ]
謝謝您的幫助
你試過'Item.query(ndb.GenericProperty('variants.dynamic')=='a')'? –
試圖實例化'ndb.GenericProperty('variants.dynamic')'產生'ValueError:Name'variants.dynamic'不能包含來自'ndb/model.py'第765行的句點字符。看起來這應該是一個特性請求。 – bossylobster