Django: получить пользовательский вывод тега в представлении - PullRequest
1 голос
/ 07 июля 2010

У меня очень специфическая проблема.

Я написал специальный шаблонный тег для отображения некоторого кода HTML, основанного на некоторых вычислениях. Тег вызова выглядит так:

{% chord 'A' %}

И сгенерированный вывод

<div class="chord">A <audio src="/media/chords/A/A.mp3" controls>Not supported</audio></div> 

Все отлично работает, но я дошел до стадии, когда Мне нужно поместить этот вывод в переменную, на мой взгляд, а не в шаблон . Это как-то возможно? Есть ли метод, который я могу вызвать изнутри представления, чтобы получить вывод пользовательского тега с заданным параметром?

1 Ответ

3 голосов
/ 07 июля 2010

Ну, вы можете просто определить строку шаблона внутри вашего представления и отобразить ее:

tpl = Template("{% load chord %}{% chord 'A' %}")
html = tpl.render(Context())

но лучшим подходом может быть просто извлечь логику для кода тега в служебную функцию, которую вы можете вызывать как из своего представления, так и из самого тега шаблона.

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