2

如何检索和显示从 GQL 查询返回的多个结果的键?

主文件

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' object has no attribute '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 回答