[英]rendering of textfield and charfield chomps out extra whitespace (Django/Python)
我注意到我的模板正在渲染我的model.CharField和model.TextField而沒有任何多余的空格。
例如,如果我輸入數據,如...
This is a test
to see what happens.
渲染的對象字段將顯示為......
This is a test to see what happens.
這是Django的故意特征還是我錯過了某些過濾器或參數?
我用一些調試代碼(print object.field)檢查了字段本身,它確實包含額外的空格,所以問題出在渲染方面。
如何允許用戶在TextFields中輸入數據段落? 如何保留用戶可能輸入的空白?
正如您在StackOverflow中看到的那樣,您的空間不會顯示,這來自您的問題的來源:
This is a test
to see what happens.
將保存在數據庫中:
This is a test\n\n\nto see what happens.
渲染為html時遇到問題:
除非在<pre></pre>
標記之間,否則瀏覽器會顯示單詞之間的額外空格
換行符將呈現為純文本換行符,除非在<pre></pre>
標記之間,否則不會在瀏覽器中顯示。
對於空格,您可以使用此類模板過濾器將其替換為與其等效的html實體:
。
要在HTML換行符中轉換數據庫換行符,請使用linebreaksbr內置過濾器。 例如,如果{{ foo }}
是: test\\nbar
,那么{{ foo|linebreaksbr }}
將呈現: test<br />bar
在某些應用中創建一個“templatetags”文件夾 ,其中包含__init__.py
文件。
例如,在someapp / templatetags / replace_tag.py中保存代碼段
在模板中加載模板過濾器 {% load replace_tag %}
將replace和linebreaksbr結合起來 : {{ foo|linebreaksbr|replace:" "," " }}
{{ foo|linebreaksbr|replace:" "," " }}
您還可以創建自己的模板過濾器,將文本處理為您需要的HTML。 在任何情況下,請參閱自定義模板篩選器文檔以獲取完整信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.