0

Pythonを使用してappengine用のCMSに取り組んでいます。ページのタイトル、コンテンツ、その他のメタデータを入力するワードプレスの仕組みによく似たフォームページがあります。これが AddPage だとしましょう

ページが保存されると、データが保存され、記事のインデックス ページにリンクが表示されます。投稿をクリックするとワードプレスと同じように。私がやろうとしているのは、インデックスページでリンクをクリックすると、ユーザーは 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)にリスト/配列を返すようです。

しかし、テンプレート側では、 ここでpage_details<input id="author" type="text" name="author" maxlength="120" value="{{ page_details.Author }}">がオブジェクトを期待しているよう に、実際に間違っているようなことをしています。しかし、あなたはそこにリストを渡します。したがって、このように for ループにする必要があります。

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

私は、これはあなたのために働くべきだと思います。

于 2012-07-13T06:47:55.553 に答える