Django 换行问题
我有一个困扰我很多年的问题。
这个问题是,在一个div里面有一段很长的文字,没有空格分隔。因为没有换行,这段文字把整个布局都搞乱了。
我该怎么在Django中好好解决这个问题呢?
这是我看到的情况:
3 个回答
1
我不知道这是否有帮助,但一种方法是基于 truncatewords
过滤器创建一个新的过滤器。https://docs.djangoproject.com/en/dev/ref/templates/builtins/#truncatewords
代码看起来非常简单:
def truncate_filter(value, maxlen):
if len(value) <= maxlen:
return value
return value[:maxlen-2] + '..'
另一个想法是使用: {{ username|stringformat:".10s" }}
来截断到10个字符。https://docs.djangoproject.com/en/dev/ref/templates/builtins/#stringformat
8
这让我很困惑,因为内置的自动换行模板标签应该是可以正常工作的。不过可以试试这个...
{{ value|wordwrap:50|linebreaksbr }}
或者
{{ value|wordwrap:50|linebreaks }}
这要看你是想要 <br>
标签,还是想要 <br> 和 <p>
标签
7
根据我的理解,这个问题是关于HTML的,而不是Django的。如果你想解决HTML方面的问题,可以看看这个链接:如何在HTML中换行文本?。如果你还是想在Python代码中换行文本,可以使用textwrap.wrap这个工具。
另外,还有一个很方便的模板标签可以用来处理这个问题:wordwrap。它使用的是django.utils.text.wrap这个函数,听起来在Django项目中使用会更合适。