Django render_to_string添加' \ n'到XML模板

时间:2017-01-05 16:43:20

标签: python xml django django-templates

我正在尝试将xml模板呈现给视图中的字符串,以便向Web服务发出soap请求。当我loader.render_to_string('app/services/soap/item_update.xml', context, None)时,我得到的字符串有断行(\ n),我按下了回车键。以下是一个例子。

Ex XML Code:

<name>Das</name>
<city>Col</city>

对应字符串:

'<name>Das</name>\n    <city>Col</city>'

呈现的响应类型为<class 'django.utils.safestring.SafeText'>

有没有办法在没有换行符的情况下渲染字符串,因为用它发出Soap请求会发送400响应?

1 个答案:

答案 0 :(得分:1)

要回答您的问题,您只需更换换行符即可。

xml_as_string = loader.render_to_string('app/services/soap/item_update.xml', context, None)
xml_as_string = xml_as_string.replace("\n", "")

注意这也会删除代码中的换行符。

标签外的换行符和空格确实不应该导致问题。 此外,XML应该只有一个除编码标记之外的根节点。见2.1 of the spec,相关部分是......

  

只有一个元素,称为根或文档元素,其中任何部分都不会出现在任何其他元素的内容中。