Django 换行问题

5 投票
3 回答
9434 浏览
提问于 2025-04-16 21:41

我有一个困扰我很多年的问题。

这个问题是,在一个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项目中使用会更合适。

撰写回答