Пользовательские теги делают что-то в начале и в конце - PullRequest
1 голос
/ 28 марта 2012

Я пишу пользовательский тег для создания динамического CSS и другого HTML-форматирования вокруг контейнерных HTML-блоков. По сути, идея заключается в том, что я хочу, чтобы некоторые шаблоны HTML были вложены вокруг «мяса» блоков HTML. Например, допустим, у меня есть таблица, я хочу вложить в нее некоторые элементы div (или, возможно, другие вещи). Эти div не всегда одинаковы, но обычно одинаковы.

Я хочу, чтобы закрывающий тег, например, {% endtag %} тоже что-то делал.

Начало тега кажется достаточно простым и может быть сделано с помощью включения.

Чтобы продемонстрировать мою идею выше, приведем HTML без тега:

<div class=someclass>
    <table class=someclass id=someid>
        stuff here
    </table>
</div>

Вместо этого, используя тег, он будет выглядеть так:

{% customtag arg %}
    <table class=someclass id=someid>
        stuff here
    </table>
{% endcustomtag %}

В приведенной выше демонстрации customtag и endcustom tag каждый отображает соответствующие части div.

Короче говоря:

Можно ли использовать {% endXXX %} или какой-либо другой механизм для визуализации HTML в конце блока?

1 Ответ

3 голосов
/ 28 марта 2012

можно!

https://docs.djangoproject.com/en/dev/howto/custom-template-tags/#parsing-until-another-block-tag

Посмотрите на созданный нами тег, используя конечный тег:

https://github.com/pythonheads/inc/blob/master/src/inc/templatetags/inc.py#L97

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...