0

我正在使用 python 为 appengine 开发 CMS,我有一个表单页面,很像 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 }}">

我没有收到任何错误,这不起作用,所以这里有问题:

我也尝试过像这样输出它:

仍然没有任何帮助。

4

2 回答 2

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 的建议,让我走上了正确的道路。

于 2012-07-18T00:44:45.817 回答
0

伙计,根据您发布的代码,显然它pageDetails_list = page_details.fetch(10)会返回一个列表/数组。

但是在模板方面,你做的事情 <input id="author" type="text" name="author" maxlength="120" value="{{ page_details.Author }}"> 实际上是错误的,因为这里的page_details期望对象。但你通过那里的名单。所以它应该像这样在for循环中,

{% for page_detail in page_details %}
   //do stuff..
{% endfor %}

我想,这应该对你有用。

于 2012-07-13T06:47:55.553 回答