0

PythonとGoogleAppEngineを使用して小さなアプリを開発しています。ボイラープレート(https://github.com/coto/gae-boilerplate)をフロントエンドとして使用しており、gaeの方向とPythonテンプレートに従うので、プレーンなものと何ら変わりはありません。

さて、これが欲しいです。ユーザーがログインしたときに、名前と名前のフィールドが入力されていない場合は、ホームページでプロファイルを編集したいと思います。

プロファイルを編集するためのページは、edit_profile.htmlと呼ばれるテンプレート(base.htmlを拡張する)であり、適切に機能します。ホームページもhome.htmlと呼ばれるテンプレート(base.htmlを拡張)です。

ここで、edit_profile.htmlをhome.htmlに含めることはできますか?どうすればいいですか?

これは私が持っているものです、私は代わりに何を置くべきかわかりません???? 私はで試しました

 {% block edit_profile.html %}  {% endblock %}

しかし、動作しません

{% if user_info.name and user_info.last_name %}
        ..
        {% else %}
           ????
        {% endif %}

ありがとう。

4

1 に答える 1

2

したがって、特定のテンプレートの一部のブロックのみを含めたいとします。次の 2 つの解決策があります。

1) プロファイル編集フォーム専用のテンプレートを作成し、 に含めますedit_profile.html。次に、条件分岐にも含め home.htmlますif

profile_form.html:

<form action="{% url some-action %}">
{{ form }}
<input type="submit" value="save"/>
</form

profile_edit.html

{% extends "base.html" %}

{% block main %}
{% include "profile_form.html" %}
{% endblock %}

home.html

{% if user_info.name and user_info.last_name %}
{% include "profile_form.html" %}
{% endif %}

2) 拡張テンプレートに変数を使用:

profile_form.html

{% extend BASE_TEMPLATE %}

必要に応じて異なる値を使用してコンテキストに設定します。

included_form.htmlhome.html 内 (いくつかの基本的なテンプレートとしましょう)

{% if user_info.name and user_info.last_name %}
{% with "included_form.html" as BASE_TEMPLATE %}
   {% include "edit_profile.html" %}
{% endwith %}
{% endif %}

フォームをスタンドアロン ページとして表示する場合は、次のように設定BASE_TEMPLATEします。base.html

于 2012-08-08T10:36:48.337 に答える