[英]Displaying an HTML table from a Django view in another template
所以我有一個 Django 視圖,它允許用戶上傳一個文件,其中包含要通過 Pandas 數據框繪制的數據。 然后在單獨的視圖中創建該圖,該視圖在原始文件上傳視圖中通過圖像標簽進行引用。 這完美地工作。
現在我還想在圖表圖像旁邊以表格格式顯示數據。 我正在使用 Panda 內置的dataframe.to_html()
在單獨的視圖中創建表,該視圖也將在文件上傳視圖中引用。
我正確生成了表格,可以在為表格指定的 URL 中看到。 當我嘗試從文件上傳模板中引用該 URL 時遇到錯誤。
錯誤是:
Resource interpreted as Image but transferred with MIME type text/html
我發現這是因為我的文件上傳模板有這一行:
<img src="{% url 'html_graph' %}" />
因為視圖正在返回一個content_type
為text/html
的HttpResponse
。
有沒有辦法從我的文件上傳模板中引用該 HTML 表格視圖,該模板不使用圖像標記,因為表格是 HTML 而不是圖像?
這是我的工作實現:
html_table = df.to_html(index=False)
return render_to_response('myapp/my_template.html', {'html_table': html_table}, RequestContext(request))
然后我在模板中引用該html_table
,例如:
<div>
{{ html_graph | safe }}
</div>
編輯
模板代碼中的更正:
<div>
{{ html_table | safe }}
</div>
要解決它,您可以執行下列操作之一:
<pre>
標記所有轉義字符,例如< >
< >
等將被渲染,因為它可以完成為: <pre> {{ html_table }} </pre>
autoescape
可用的autoescape
過濾器可以這樣做: {% autoescape off %} {{ html_table }} {% endautoescape %}
第二個選項更好,因為它是由 django 提供的,並且只有開發人員擁有它的權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.