实体存在,返回空模板

时间:2010-06-25 13:24:53

标签: python google-app-engine google-cloud-datastore

我得到了以下非常基本的模板:

<html>
<head>
</head>
<body>

<div>
<!-- Using "for" to iterate through potential pages would prevent getting empty strings even if only one page is returned because the "page" is not equal the query, it is a subcomponent of the query -->
<div>{{ page.name }}</div>
<div>{{ page.leftText }}</div>
<div>{{ page.imageURL }}</div>
<div>{{ page.rightText }}</div>
</div>

</body>
</html>

最基本的模型:

class Page(db.Model):
 name = db.StringProperty(required=True)
 leftText = db.TextProperty()
 rightText = db.TextProperty()
 imageURL = db.LinkProperty()

最基本的处理程序:

class BaseRequestHandler(webapp.RequestHandler):
    #######
class PageContentLoadRequestHandler(BaseRequestHandler):

 def renderPage(self, values):
  directory = os.path.dirname(__file__)
  path = os.path.join(directory, 'templates', 'simple_page.html')
  return template.render(path, values, True)

 def get(self):
  page = db.get('aghwc21vZWJlbHIKCxIEUGFnZRgBDA')
            #alternative code
            # page db.get(db.key(self.request.get('key')))
            # The solution is to call/fetch the wanted object/query
  data = page.get() # or ... = Page.gql("GQL CODE").fetch(1)
  values = {'page': page}
  template_name = "simple_page.html"
  return self.response.out.write(self.renderPage(values))

密钥只是从我的存储中随机取出,它是一个填充实体的真实存在密钥。 他们的想法是通过AJAX将页面内容动态加载到doc中,问题是,这个处理程序返回一个空模板。 没有错误,200 HTTP代码,密钥存在等等,等等。 由于这些问题,我完全被打破了,有点恼火,因为我安静地不知道故障可能在哪里。

的问候,

编辑:将模板值更改为正确的名称,我现在得到以下错误:

    values = {'page': page, 'name': page.name,}
AttributeError: 'NoneType' object has no attribute 'name'

1 个答案:

答案 0 :(得分:2)

您的属性称为“leftText”,“rightText”和“imageURL”,但您尝试打印出“left_text”,“right_text”和“image_url”。 Django以其无限的智慧,在您尝试访问不存在的属性时,只返回一个空字符串,而不是抛出异常。