在Django模板中从xml自动调整值

时间:2016-08-02 15:23:59

标签: xml django django-templates

我使用Django模板来存储一些XML字符串。 xml字符串如下所示:

<wfs:Transaction service="WFS" version="1.0.0"
  xmlns:ogc="http://www.opengis.net/ogc"
  xmlns:wfs="http://www.opengis.net/wfs">
  <wfs:Update typeName="geonode:{{ layer_name }}">
   {% autoescape off %}{{ property_element }}{% endautoescape %}
   <ogc:Filter>
    <ogc:FeatureId fid="{{ layer_name }}.{{ feature_id }}"/>
  </ogc:Filter>
</wfs:Update>

如您所见,我传递了一些变量,例如property_element。 这个变量实际上是另一个xml字符串,如下所示:

property_element_1 = """<wfs:Property>
      <wfs:Name>{}</wfs:Name>
      <wfs:Value>{}</wfs:Value>
    </wfs:Property>\n""".format(attribute, value)

这就是我将属性渲染到模板的方式:

xmlstr = get_template(xml_path).render(Context({
        'layer_name': layer_name,
        'coords': coords,
        'property_element': property_element})).strip()

问题是xmlstr的一部分,它对应于

       property_element_1  

没有自动转移。所以我得到的价值如下:&lt;和&gt;

我如何自动取景?

1 个答案:

答案 0 :(得分:1)

这是您的确切代码吗?问,因为你正在渲染一个属性元素,但你还没有定义一个。

无论如何,角括号没有被转义的原因是:

{% autoescape off %}{{ property_element }}{% endautoescape %}

您已将其关闭