2010-07-07 4 views
1

У меня есть очень специфическая проблема.Django: Получить пользовательский вывод тега внутри представления

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

{% chord 'A' %} 

И выход генерируемый

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

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

ответ

3

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

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

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

+1

Спасибо, ваши ответы лучше всех, как обычно :) Вам также нужно «от django.template import Template, Context», чтобы это работало –

Смежные вопросы