在django中将文本渲染为模板标记

时间:2015-07-03 22:38:42

标签: python django django-forms django-templates

所以我想创建一个动态的侧栏。这是侧栏1中的内容。这是来自数据库的widget.content。使用generic.DetailView

<div class="widget">
     <img src="{% static 'frontend/images/banner2.png' %}"  alt=""/>
 </div>

我创建了一个模板标签来渲染字符串。

@register.assignment_tag(takes_context=True)
def enquiry_form(context):
    return EnquiryForm()

@register.simple_tag(takes_context=True)
def render_as_template(context, template_as_string):
   template_as_object = context.template.engine.from_string(template_as_string)
   return template_as_object.render(context)

在我的page.html中,我正在呼叫

{% render_as_template widget.content|safe %}

但我得到了

 Invalid block tag: 'static' 

是否有任何解决方法。此外,我在其中一个侧边栏中有enquiry_form。任何方案?我正在使用Django 1.8

1 个答案:

答案 0 :(得分:0)

好的,我得到了答案。当我在数据库中保存小部件时,我必须保存负载静态

  

<div class="widget">
   <img src="{% static 'frontend/images/banner2.png' %}"  alt=""/>
</div>
  

{% load static %}
{% load templatetags %}  # if needed
<div class="widget">
   <img src="{% static 'frontend/images/banner2.png' %}"  alt=""/>
</div>