我必須發送一些粗體文本之間的粗體文本,並將其從視圖發送到模板。我這樣做:使用django製作文本粗體
我保存了一個像這樣的字符串<b> TextPlaintext </b >在一個變量中並將其返回給模板。 「<b>」標籤不被解釋。
如何使一些文字在django視圖中加粗?
我必須發送一些粗體文本之間的粗體文本,並將其從視圖發送到模板。我這樣做:使用django製作文本粗體
我保存了一個像這樣的字符串<b> TextPlaintext </b >在一個變量中並將其返回給模板。 「<b>」標籤不被解釋。
如何使一些文字在django視圖中加粗?
不應在視圖中設置粗體文字。事實上,該視圖不應該關注格式(這是模板的作用)。但是,您可以執行的操作是在渲染上下文中添加一個額外變量,並根據其值將文本設置爲粗體或不在模板中。
例如:
在視圖:
#...
is_important = True if something else False
extra_context.update({'is_important': is_important})
#...
在模板:
...
{% if is_important %}<bold>{{ text_to_render }}</bold>{% else %}{{ text_to_render }}{% endif %}
...
但更普遍,決定是否文本是大膽與否,是不是甚至格式化,而不是樣式,不應該在模板中進行(所以你不應該使用< 粗體>標記)。所以我建議:
...
<span {% if is_important %}class="is-important"{% endif %}>
{{ text_to_render }}
</span>
...
而且樣式表:
.is-important{
font-weight: bold;
}
Django自動轉義模板中的字符串值,以提高安全性。
如果你知道某個值中包含了HTML,並信任,那麼你就可以關閉逃逸:
{{my_trusted_html|safe}}
您可以使用autoescape標籤在Django模板。
此外,如果您編寫自己的過濾器,則可以使用control whether or not it is escaped。
+1爲是*正確*,但OP在做任何類型的文本格式的視圖作出一個更根本的錯誤,正如@SébastienPiquemal指出的那樣。 – 2010-07-25 21:47:46
我想我並不像你那麼教條。在視圖中創建HTML內容是有原因的,甚至是在模型中創建或存儲在數據庫中。知道如何正確地將數據放到頁面上是一個有用的工具。我不假定對OP的問題有足夠的瞭解,說明他是否在做一些像「犯錯」那樣的壞事。 – 2010-07-25 21:54:19