将文本替换为django模板标签/变量

时间:2015-05-28 15:12:23

标签: django templates

我想自动编写重复的django模板。例如,如果我想写一系列

<span>Monday</span>
  <span class="field-label">{{ schedule_form.open_time_x.label_tag }}</span>
  <span class="field-label">{{ schedule_form.close_time_x.label_tag }}</span>

我想使用1-7键从字典中输入日期,然后将1-7输入到'open_time_x'中的x。我不在乎是否在模板或视图中完成(我有一个模板过滤器将一个数字转换为一个范围),我只想知道如何将模板代码替换为模板而不考虑你想要显示它在网页上。谢谢

1 个答案:

答案 0 :(得分:2)

您可以创建模板文件,例如:

<div class="form-group ">
    <span class="field-label">{{ field.label_tag }}</span>
    <span class="field-item">{{ field }}</span>
</div>

然后在您的应用中添加一个templatetags目录,其中包含一个空的__init__.py文件,以及一个新的my_extras.py或您喜欢的名称:

from django import template

register = template.Library()

@register.inclusion_tag('my_app/my_template.html')
def my_field(field_var):
    return {'field': field_var}

然后,您可以在模板中使用新的my_field标记:

{% load my_extras %}
{% my_field my_form.a_field %}

Django docs: Custom template tags and filters

中有关此主题的更多信息