Передача 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> 
Вернуться на верх