我在访问结构化列表中的实例时遇到困难 以下是我的结构清单:
class FavFruits(ndb.Model):
fruit = ndb.StringProperty()
score = ndb.IntegerProperty()
comment = ndb.TextProperty()
class UserProfile(ndb.Model):
uid = ndb.StringProperty(required=True)
password = ndb.StringProperty(required=True)
firstName = ndb.StringProperty(required=True)
favFruits = ndb.StructuredProperty(FavFruits, repeated=True)
我想在score
实体下显示FavFruits
。
我没试过UserProfile.favFruits.score
。
我也尝试了UserProfile.favFruits[index].score
,但是现在需要循环,我想避免它。
最终,我想做以下逻辑:
如果UserProfile.uid == userEntering,则用户输入水果名称
如果UserProfile.favFruits.fruit == fruitName(用户输入),则显示用户指定的UserProfile.favFruits.fruit的UserProfile.favFruits.score和UserProfile.favFruits.comments。
最后,我想显示用户输入的所有水果/分数。比如,用户输入" apple"和"橙"对于水果名称,我想循环,例如(沿着这一行):
for x in fruitNames
print x
print UserProfile.favFruits.score.query(UserProfile.favFruits.fruit == x)
这可能吗?看似琐碎的任务,但我无法弄清楚这一点..
提前谢谢!
答案 0 :(得分:3)
您的要求是矛盾的。如果您不想循环,请不要使用repeated=True
。但是,您将无法为每个实体存储多个。如果没有循环或索引,就没有可能有多种方法。