如何为XML使用Jinja模板?

时间:2019-10-02 21:04:13

标签: django django-templates jinja2

我正在尝试使用jinja模板,就像我们在HTML中使用它一样。

# urls.py
from django.urls import path
from CallCenter.views import view_assets

urlpatterns = [
    path('', index, name="index"),
    path('assets', view_assets)
]
# views.py
def view_assets(request):
    return render(request, "CallCenter/new.xml")
<!--base.xml-->
<?xml version="1.0" encoding="UTF-8"?>
<Response>
     <Say>
          {% block content %}
          {% endblock %}
     </Say>
</Response>
<!--new.xml-->
{% block content %}
Say this!
{% endblock %}

不幸的是,当我这样做时,它被包裹在HTML标记中,我不想要那样。输出为:

<?xml version="1.0" encoding="UTF-8"?>
<html class="gr_4a9e18fa_ngrok_io">
<head></head>
<body data-gr-c-s-loaded="true">
   <response>
     <say>
          Say this!
     </say>
   </response>
</body>
</html>

预期输出应为:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
     <Say>
          Say this!
     </Say>
</Response>

我正在使用ngrok访问/ assets页面。我得到的输出是通过ngrok_address / assets / new.xml

1 个答案:

答案 0 :(得分:0)

也许添加的html标记中的某些内容可能是一个线索?

<html class="gr_4a9e18fa_ngrok_io">

你能在这里发现一些东西吗?不是吗好的,另一个提示:

  

我正在使用ngrok来访问/ assets页面

您可能希望修复代码,以将正确的内容类型(“ text / xml”或“ application / xml”)传递给render()-您仍然应该这样做。现在,我对ngrok的了解不多,所以我无法确定这是否可以解决问题-可能还有其他原因导致您看到此添加的标记-但在所有情况下,问题都与ngrok有关,而不是Django或Jinja2