Передача HTML как agrumnet внутри тега включения
Я создал тег включения для создания определенного количества столбцов в строке:
<tr>
{% for col in cols %}<td>{{ col }}</td>{% endfor %}
</tr>
Моя функция inclusion_tag следующая:
@register.inclusion_tag("row_with_cols.html")
def row_with_cols(*cols):
return {"cols": cols}
Теперь я могу передавать в свои строки столько значений, сколько захочу, используя что-то вроде:
{% row_with_cols "Full name" session.userinfo.name %}
Это все хорошо, однако, чтобы перейти на новый уровень, я хотел бы передавать аргументы, которые являются аргументами HTML.
Например, я хочу сделать что-то вроде этого:
<tr>
<td>Image</td>
<td>
<img src="{{ session.userinfo.picture }}">
</td>
</tr>
инто
{% row_with_cols "Image" <img src="{{ session.userinfo.picture }}"> %}
Однако, это дает мне Could not parse the remainder: '<img' from '<img'
Я знаю, что могу модифицировать функцию inclusion_tag с некоторыми дополнительными аргументами, которые могли бы предоставить информацию, но я надеялся сохранить эту функцию красивой и общей.
Было бы полезно, если бы кто-нибудь мог сказать мне, что то, что я делаю, невозможно или есть чистый/не халтурный способ сделать это. Спасибо
Вы должны использовать одинарные и двойные кавычки :
<table>
{% row_with_cols "Image" "<img src='{{ session.userinfo.picture }}'>" %}
</table>