我正在尝试使get_by_id()
工作,但我不确定我正在做的事情是错误的还是它没有真正起作用。我希望它返回一个类似于ndb.Key('Organization',id).get()
的实体,但两者都不起作用。这是我尝试过的:
class CompaniesPage(BaseHandler):
def get(self):
id = self.request.get('id')
organizations = Organization.query()
company = Organization.get_by_id(id) # first try
values = {
'organizations' : organizations,
'company' : company,
'id' : id
}
self.render_html('companies.html',values)
第二次尝试:
class CompaniesPage(BaseHandler):
def get(self):
id = self.request.get('id')
organizations = Organization.query()
company = ndb.Key('Organization',id).get() # second try
values = {
'organizations' : organizations,
'company' : company,
'id' : id
}
self.render_html('companies.html',values)
这是我使用 Jinja2
的 html
<h3> {{ company }} <small>{{ id }} Category</small></h3>
我得到以下文本:
无6201245580656640类别
我尝试遵循Google App Engine文档中有关模型get_by_id的参考。
您还没有说明如何创建实体,但是根据您的示例None 6201245580656640 Category
像6201245580656640
这样的 id 告诉我您可能正在使用自动生成的 id,这是一个整数而不是字符串。 您正在从请求对象获取 id,这将是一个字符串。
调用get_by_id(int(id))
中将其转换为 int