2

GQL クエリから返された複数の結果のキーを取得して表示するにはどうすればよいですか?

main.py

class MainPage(webapp2.RequestHandler):
    def get(self):          

        author = "William Shakespeare"

        q = db.GqlQuery("SELECT * FROM Book " +
                        "WHERE author = :1 ", author)
        keys = q.Key

        template_values = { 
            'author': author,
            'key': key,         
        }       

        template = jinja_environment.get_template('index.html')
        self.response.out.write(template.render(template_values))

更新 1:

私が使うとき

keys = q.key()

次のエラーが表示されます。

ファイル "C:\programming_google_app_engine_repo\datastore\main.py"、17 行目、get key = q.key() の AttributeError: 'GqlQuery' オブジェクトに属性 'key' がありません

4

1 に答える 1

2

コードに複数の問題があります。一歩下がって、何をしたいのかを考え、もう一度ドキュメントに目を通してください。

問題 1
a の結果にGqlQueryキーがありません。.get()オブジェクトを使用するか、オブジェクト.fetch(1)にアクセスする必要がありBookます。

q = db.GqlQuery("SELECT * FROM Book WHERE author = :1 ", author)
my_book = q.get()

問題 2
a の値を取得するmethodには、括弧/括弧を含めることを覚えておく必要があります。

my_book_key = my_book.key() # don't forget the parens/brackets

template_values = { 
    'author': author,
    'key': my_book_key,         
}
于 2013-03-22T21:37:05.337 に答える