2012-04-30 3 views
0

Как я могу встроить собственный класс тегов (template.Node), чтобы анализатор отображал фрагмент html с тегами в нем? Например:Parse Custom html в Теги шаблона, django 1.4

@register.tag(name='addspam') 
class AddSpam(template.Node): 
    def __init__(self, parser, token): ... 
    def render(self, context): 
     spam_html = "SPAM {{ any_tag_here }} SPAM" 
     return spam_html 

Здесь AddSpam, когда 'называется', возвращает 'СПАМ {{}} any_tag_here СПАМ', без оказания any_tag_here. Это явно предсказуемо, но как я могу изменить возвращаемое значение, чтобы any_tag_here отображался так, как если бы он был «родным»? Существуют ли какие-либо методы с использованием контекста, который я мог бы использовать?

ответ

0
def render(self, context): 
    spam_html = "SPAM %(any_tag_here)s SPAM" % context 
    return spam_html 
+0

это просто неправильно – FRD

0

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

{% addspam %} 
    {{ any_tag_here }} 
{% end_addpsam %} 

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

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