Я хочу разделить имя с пробелом и имя_тега с подчеркиванием. Как я могу разделить через jinja templating
Html файл:
{% for i in i|split:' ' %}
<tr>
<td>
<p>{{ i }}</p>
</td>
<td>
<p>{{ j }}</p>
</td>
</tr>
{% endfor %}
custom_tags.py из django import template register = template.Library()
@register.filter(name='split')
def split(obj, sub_strings):
list1 = obj.name.split(" ")
list2 = obj.tag_name.split("_")
if "" in list1:
list1.remove("")
return [list1, list2]
Ваш тег шаблона не разделяет на основе переменной, которую вы ему передаете, но, похоже, в этом нет необходимости, так как вы разделяете на ' '
и '_'
. Поэтому вы можете вообще убрать это:
{% for i in i|split %}
@register.filter(name='split')
def split(obj):
list1 = obj.name.split(" ")
list2 = obj.tag_name.split("_")
if "" in list1:
list1.remove("")
return [list1, list2]
Это дает вам список из двух списков, предположительно вы хотите показать оба списка, потому что у вас есть {{ i }}
и {{ j }}
? Вам просто нужно переместить цикл for так, чтобы он был вокруг элементов <td>
, а не вокруг строки таблицы:
<tr>
{% for i in i|split:' ' %}
<td>
<p>{{ i }}</p>
</td>
{% endfor %}
</tr>