我正在使用python在CMS上进行appengine工作,我有一个表单页面,就像wordpress在你输入页面的标题,内容和其他元数据时的工作原理。让我们说这是AddPage
保存页面后,数据将被存储,并且文章索引页面上会显示一个链接。就像点击帖子时的wordpress一样。我想要做的是,一旦在索引页面上点击链接,用户就会被重定向到一个与AddPage完全相同的页面,但它已经准备好了可以编辑的数据。
如果我错过了什么,我该怎么做?
class EditPageHandler(webapp2.RequestHandler):
def get(self, articleID):
page_details = db.GqlQuery("SELECT * FROM TitlePage WHERE key_name = '" + articleID + "'" )
pageDetails_list = page_details.fetch(10)
template = jinja_environment.get_template('templates/editcourse.html')
self.response.out.write(template.render({'page_details':pageDetails_list}))
html模板会显示如下内容:
<input id="author" type="text" name="author" maxlength="120" value="{{ page_details.Author }}">
我没有收到任何错误,这不起作用,所以有些事情不在这里:
我也尝试过这样输出:
仍然没有任何帮助。
答案 0 :(得分:1)
我设法解决了这个问题,我上面使用的方法都是错误的而不是有效的:
class EditPageHandler(webapp2.RequestHandler):
def get(self, articleID):
page_details = TitlePage.get_by_key_name(articleID)
template = jinja_environment.get_template('templates/editcourse.html')
self.response.out.write(template.render({'detail':page_details}))
和我刚刚做的html:
<input id="author" type="text" name="author" value="{{ detail.Author }}">
它有效:)
感谢gwynhowell提出改进代码的建议,我做了更改,非常感谢Sebastian Kreft提出的让我走在正确轨道上的建议。
答案 1 :(得分:0)
Buddy,根据您发布的代码,显然pageDetails_list = page_details.fetch(10)
将返回列表/数组。
但是在模板方面,你做的事情就像
<input id="author" type="text" name="author" maxlength="120" value="{{ page_details.Author }}">
这实际上是错误的 page_details 期待对象。但是你经过那里清单。
所以它应该像这样循环,
{% for page_detail in page_details %}
//do stuff..
{% endfor %}
我认为,这应该适合你。