我在嘗試顯示在django視圖上創建的代碼的html塊時遇到問題。 這是發生了什麼。Django:將HTML字符串傳遞給模板
在我看來,我試圖傳遞給模板一堆書描述,我會根據用戶操作隱藏/顯示。這些描述存儲在服務器上的html文件中。
def my_view()
#loop through the list of books, read their corresponding a html file, and parse it to fill in the book details
#code, code, code...
#take the resulting string, append it on books description array, log it and send it to template
logger.debug(books_description["Clockwork orange"])
return render_to_response("my_template.html", {'bd': books_description}, context_thingy)
到目前爲止這麼好。我的日誌顯示HTML字符串正是因爲它應該:現在
<div id="modal_book_name">Clockwork orange</div>
<div id="modal_book_genre">Dystopian fiction</div>
<br>
<div id="modal_book_desc">yadayadayadayada</div>
,因爲我不想要的內容在我的html代碼鋪設約,我讀的書描述成像這樣一個javascript變量:
books_description = {};
{% for book, book_desc in bd.items %}
books_description["{{ book }}"] = "{{ book_desc|escapenewline }}"
{% endfor %}
escapenewline是一個過濾器,它在每行的末尾放置一個\以確保javascript能夠正確解釋整個字符串內容。
最後,當用戶想要查看某本書上的描述時,他只需點擊它,模式就會顯示出書的描述。爲了這個,我有:
console.log(books_description[book_name]);
$("#modal_info").html(books_description[book_name]);
再次,一切似乎很動聽本的console.log:
<div id="modal_book_name">Clockwork orange</div><div id="modal_book_genre">Dystopian fiction</div><br><div id="modal_book_desc">yadayadayadayada</div>
不幸的是,當我打開網頁的modal_info格是空的。當我打開瀏覽器的開發者工具和檢查HTML的該div這裏是我所看到的:
<div id="modal_info">
"<div id="modal_book_name">Clockwork orange</div><div id="modal_book_genre">Dystopian fiction</div><br><div id="modal_book_desc">yadayadayadayada</div>"
</div>
的問題是在這些引號。他們是如何出現在那裏的?我怎麼能擺脫他們,爲什麼他們放在那裏呢?
在此先感謝。如果有什麼不清楚的地方,隨時提問,我會澄清它。
UPDATE:嗯,原來,modal_info DIV不畢竟..文本只有相同的顏色作爲背景空。道歉,這是我的愚蠢。但問題依然存在。在那裏我應該看到:
Clockwork Orange
Dystopian fiction
yadayadayadayada
我看,而不是字面的html:
<div id="modal_book_name">Clockwork orange</div><div id="modal_book_genre">Dystopian fiction</div><br><div id="modal_book_desc">yadayadayadayada</div>
我試圖解析字符串與parseHTML功能HTML:
var book_desc = $.parseHTML(books_description[book_name]);
$("#modal_info").html(book_desc);
但結果是相同的。任何想法如何讓瀏覽器將該字符串解釋爲html代碼而不是字符串