2015-03-14 2 views
0

у меня есть это данные, которые поступают из поля в базе данных:Форсировать шаблон Django для отображения фигурных фигурных скобок?

item_list = Links.objects.filter(visible=True) 

В итерации item_list есть item.name и item.link. В item.link там потенциально может быть строка значение

'/app/user/{{user.id}}/'. 

При оказании этой конкретной item.link в шаблоне Django, он выходит буквально в HTML выход как:

/приложение/пользователь/{ {user.id}}/

когда буквально я надеюсь на это, чтобы сделать как:

/приложение/пользователь/1/

есть ли способ заставить шаблон к recogniz e это как скомпилированное значение для вывода?

ответ

1

Вы должны создать custom template tag:

from django import template 

register = template.Library() 

@register.simple_tag(takes_context=True) 
def render(context, tpl_string): 
    t = template.Template(tpl_string) 
    return t.render(context) 

а также в шаблоне:

{% load my_tags %} 

{% render item.link %} 
+0

Вот и все. Спасибо, катаваран! – Harlin

+0

Я получаю сообщение об ошибке в шаблоне: TemplateSyntaxError at/unitas/ 'template_renderer' не является допустимой библиотекой тегов: Template library template_renderer не найден. Мой пользовательский тег шаблона находится в этой папке: apps/web/templatetags/называется template_renderer.py с __init__.py там. В моем шаблоне я делаю {% load template_renderer%}, но я все еще получаю эту ошибку. Любые идеи почему? – Harlin

+0

Вы должны перезагрузить devserver после создания библиотеки тегов шаблонов. Кроме того, 'apps.web' должно быть действительным приложением django, добавленным в настройку' INSTALLED_APS'. – catavaran

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