用模板中的逗号分隔项目

时间:2013-07-16 11:55:15

标签: django django-models django-templates

template.html

{% if leftbar.where_tab.0.location.title or leftbar.report.other_location or leftbar.report.location_description%}
{%with leftbar.where_tab.0.location.title|add:leftbar.report.other_location|add:leftbar.report.location_description as pi%}
{% if pi|length > 36 %}{{pi|slice:"36"}}...{% else  %}{{pi}}{% endif %}
{% endwith %}{%else%}Where{%endif%}

我想在每个项目之间创建一个逗号(,)。现在它在没有任何逗号的情况下显示所有在一行中。需要在项目之间分隔,而不是最后。

1 个答案:

答案 0 :(得分:1)

您可以编写模板标签以实现您的目标:

{% load_pi %}
{% display_pi leftbar %} 

并在模板标记pi.py

from django import template

register = template.Library()

def display_pi(leftbar):

    title = leftbar.get('where_tab')[0].location.title if leftbar.get('where_tab') and leftbar.get('where_tab')[0].location else ''
    location = leftbar.report.other_location if leftbar.get('report') else ''
    description = leftbar.report.location_description if leftbar.get('report') else ''

    if any([title, location, description]):
        avail = ", ".join([x for x in [title, location, description] if x])
        return (avail[:36] + '..') if len(avail) > 36 else avail
    return "Where"

register.simple_tag(display_pi)

请更严格地处理错误检查。