0

我正在使用 Python 和 Google 应用引擎开发一个小应用程序。我使用样板(https://github.com/coto/gae-boilerplate)作为前端,它遵循 gae 方向和 python 模板,所以没有什么比普通的东西不同的了。

现在,我想要的是这个。当用户登录时,如果未填写姓名和姓氏字段,我希望在主页中进行个人资料编辑。

用于编辑配置文件的页面是一个模板(扩展了 base.html),名为 edit_profile.html,它运行良好。主页也是一个名为 home.html 的模板(扩展 base.html)。

现在,我可以在 home.html 中包含 edit_profile.html 吗?我该怎么做?

这就是我所拥有的,我不知道该放什么而不是???? 我试过了

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

但不起作用

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

谢谢。

4

1 回答 1

2

因此,您只想包含给定模板的某些块。有两种解决方案:

1)创建模板仅用于配置文件编辑表单并将其包含到edit_profile.html. 然后将其也包含 home.htmlif条件分支中:

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 %}

主页.html

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

2)为扩展模板使用变量:

profile_form.html

{% extend BASE_TEMPLATE %}

并根据需要将其设置为具有不同值的上下文:

在 home.html 中(假设included_form.html是一些基本模板)

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

如果您想将表单显示为独立页面,请设置BASE_TEMPLATEbase.html

于 2012-08-08T10:36:48.337 回答