Python 一对多GQL查询并将结果放入字典
我有一个名为Python 一对多GQL查询并将结果放入字典,python,google-app-engine,one-to-many,gql,Python,Google App Engine,One To Many,Gql,我有一个名为Main的谷歌数据库 class Main(db.Model): name = db.StringProperty() phone = db.StringProperty() 还有另一个数据库Photo,它通过一对多关系引用Main class Photo(db.Model): main = db.ReferenceProperty(Main,collection_name='photos') photo1 = db.StringProperty() photo
Main
的谷歌数据库
class Main(db.Model):
name = db.StringProperty()
phone = db.StringProperty()
还有另一个数据库Photo
,它通过一对多关系引用Main
class Photo(db.Model):
main = db.ReferenceProperty(Main,collection_name='photos')
photo1 = db.StringProperty()
photo2 = db.StringProperty()
我想知道是否有人知道如何根据Main
的查询制作词典(示例如下所示):
因此,上面查询的目标是查找名称“Alan”。我不知道该怎么做的查询的目标应该是在类Photo
中检索photo1
和photo2
(当name='Alan'),并将其放入字典中
提前感谢您的帮助 根据您提供的信息,想知道您想要实现什么目标有点困难。也许你可以进一步澄清。但现在,这就是你的意思吗
class Name(webapp.RequestHandler):
def get(self):
names = db.GqlQuery('SELECT * FROM Main WHERE name=:1 LIMIT 1','Alan')
photo_array = [] #initialize an array to store the photos dicts
for name in names:
for photos in name.photos: #go over all the Photo entities that reference 'Alan'
#retrieve and put in a dictionary, and append to the photo_array
photo_array.append({"photo1":photos.photo1, "photo2": photos.photo2})
values = {'names':names, 'photos': photo_array}
self.response.out.write(template.render('base.html', values))
非常感谢!!!!!!!!!我希望我能给你100票。我觉得我也更了解gql/python。你这个男人。今天再次查看代码后,我发现我无法在
class main
中获得一对多集合的原因是我没有嵌套的for循环。所以我的问题的答案是为了选择一对多的集合,你需要一个for…in。。。在…的主类中。。。非常感谢。
class Name(webapp.RequestHandler):
def get(self):
names = db.GqlQuery('SELECT * FROM Main WHERE name=:1 LIMIT 1','Alan')
photo_array = [] #initialize an array to store the photos dicts
for name in names:
for photos in name.photos: #go over all the Photo entities that reference 'Alan'
#retrieve and put in a dictionary, and append to the photo_array
photo_array.append({"photo1":photos.photo1, "photo2": photos.photo2})
values = {'names':names, 'photos': photo_array}
self.response.out.write(template.render('base.html', values))