使用一个模板进行两个相似但不同的任务?

时间:2013-05-27 08:31:40

标签: django templates

我有一个template_a.html - 它包含在一些开源库中,我希望将来能够获得更新。

我需要一个模板,其中只有一小部分与template_a不同 我可以复制粘贴并将其设为template_b,或者我可以使用{% if {{ request.get_full_path }} == 'some-string' %}来区分我正在使用模板的内容。

这里有什么更好的做法?

  1. 为每项任务制作复制和单独的模板。
  2. 使用get_full_path来区分任务。(主要是我不喜欢使用get_full_path的想法,因为我以后可以改变路径,是 有更好的方法吗?)

1 个答案:

答案 0 :(得分:0)

  • 您可以为两个模板的公共部分创建一个基本模板
  • 为正在更改的部件定义块。
  • 从基本模板扩展两个模板,仅定义要更改的块。
  • View可以使用适当的模板来呈现响应。

参考Template inheritance

样品:

Template_base.html

{% block header %}
  {# something in header #}
{% endblock %}

{% block common %}
  {# something in common #}
{% endblock %}

{% block content %}
  {# filled by derived templates #}
{% endblock %}

Template_a.html

{% extends "template_base.html" %}
{% block content %}
    {# write your html for a.html #}
{% endblock %}

Template_b.html

{% extends "template_base.html" %}
{% block content %}
    {# write your html for b.html #}
{% endblock %}