0

私はというグーグルデータベースを持っていますMain

class Main(db.Model):
  name = db.StringProperty()
  phone = db.StringProperty()

1対多の関係を介してPhoto参照する別のデータベースがあります。Main

class Photo(db.Model):
  main = db.ReferenceProperty(Main,collection_name='photos')
  photo1 = db.StringProperty()
  photo2 = db.StringProperty()

Main(以下の例)のクエリに基づいて、辞書を作成する方法を誰かが知っているかどうか疑問に思いました。

class Name(webapp.RequestHandler):
  def get(self):
    names = db.GqlQuery('SELECT * FROM Main WHERE name=:1 LIMIT 1','Alan')
    values = {'names':names}
    self.response.out.write(template.render('base.html', values))

したがって、上記のクエリの目的は、「Alan」という名前を見つけることです。方法がわからないクエリの目的は、(name ='Alan'の場合)を取得photo1photo2class Photo辞書に入れることです。

よろしくお願いします!

4

1 に答える 1

1

提供した情報で何を達成したいのかを理解するのは少し難しいです。おそらく、さらに明確にすることができます。しかし今のところ、これはあなたが意味することですか?

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))
于 2012-04-19T07:26:21.883 に答える