从列表中创建模板中的选择

时间:2016-10-19 15:14:25

标签: django

大家好,我在模板中有这个

  {% with 'By Visit, By Patient' as list %}
    <div class="selector_healthApp">
      <div class="container">
        <div class="row">
          <div class="col-xs-3">
            <label for="sel1">Select Categoty:</label>
            <select class="form-control" id="item_project">
              {% for cat_name in list.split %}
                <option>{{ cat_name }}</option>
              {% endfor %}
            </select>
          </div>
        </div>
      </div>
    </div>
  {% endwith %}
{% endblock content %}

我有一个列表,我想在选择

中显示每个列表项

如果我使用{% for cat_name in list.split %}我在select

中有4个元素
By
Visit
By 
Patient

id我使用{% for cat_name in list %}它是由字符

分开的

如何在选择“按访问”和“按病人”

中显示

为什么我在终端尝试这个工作

list = [By Visit, By Patient]
>>> for iten in list:
...     print iten
... 
By Visit
By Patient
>>> 

谢谢你的进步

1 个答案:

答案 0 :(得分:1)

当您使用 list.split 时,它会在空间上分开导致问题。

并且Django不提供拆分模板标记,因此您无法在拆分时传递参数(即拆分&#34;,&#34; )。

您可以编写自己的自定义模板标记,从此处开始,https://docs.djangoproject.com/en/1.10/howto/custom-template-tags/

模板标签:

from django.template.defaulttags import register


@register.filter()
def split(value, arg):
    return value.split(arg)

模板:

{% load split %}
  {% with 'By Visit, By Patient'|split:"," as list %}
    <div class="selector_healthApp">
      <div class="container">
        <div class="row">
          <div class="col-xs-3">
            <label for="sel1">Select Categoty:</label>
            <select class="form-control" id="item_project">
              {% for cat_name in list %}
                <option>{{ cat_name }}</option>
              {% endfor %}
            </select>
          </div>
        </div>
      </div>
    </div>
  {% endwith %}