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%}
我想在每个项目之间创建一个逗号(,)。现在它在没有任何逗号的情况下显示所有在一行中。需要在项目之间分隔,而不是最后。
答案 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)
请更严格地处理错误检查。