2011-07-17 46 views
2

我從多年的問題。Django和包裝線問題

問題是長文本沒有被div中的空格隔開。不應用換行,它會打破所有佈局。

我該如何修復django中的一個好方法?

這是我所看到的:

enter image description here

+0

你有一個例子嗎?碼? – mjhm

+0

結帳問題的更新。 –

+1

你對Django有什麼期望?我問,因爲這看起來像一個HTML/CSS的問題,而不是蟒蛇/ Django。 – mjhm

回答

7

當我明白這個問題是HTML端問題,而不是Django的一面。對於HTML解決方案看看How to word wrap text in HTML?。如果你仍然想在Python代碼中包裝文本,textwrap.wrap會幫助你。

此外,還有一個方便的模板標籤:wordwrap。它使用django.utils.text.wrap函數,它似乎更適合在Django項目中使用。

+0

是的,這與Django沒有任何關係。這是一個HTML/CSS問題。 –

+0

wordwrap不會分裂一個長詞...... – acidjunk

1

我不知道它是否有幫助,但一種方法可能是基於truncatewords過濾器創建新的過濾器。 https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#truncatewords

代碼看起來非常簡單:

def truncate_filter(value, maxlen): 
    if len(value) <= maxlen: 
     return value 
    return value[:maxlen-2] + '..' 

另一個IDEIA使用:{{ username|stringformat:".10s" }}到10個字符截斷。 https://docs.djangoproject.com/en/1.3/ref/templates/builtins/#stringformat

0

這讓我很擔心,因爲內置的自動換行模板標籤應該剛剛工作。相反,使用此...

{{ value|wordwrap:50|linebreaksbr }} 

{{ value|wordwrap:50|linebreaks }} 

取決於如果你想<br><br> and <p>標籤