首页 > 解决方案 > 如何在 Django 模板中使用换行符

问题描述

嗨,我是 python Django 的新手。我想在特定的地方换行,所以我试过了

def abc(request):
    text = "This is\n a good example"
    return render(request, 'test.html', {'text' : text})

在 HTML 部分

Hello {{ text|linebreaks }}

这与输出工作得很好

你好这是

一个很好的例子

这是我的问题,我在我的数据库中存储了大约 400 - 800 个单词,其中大约有 4-5 段。我想在这里换行。

所以,我在我的数据库中存储像“这是一个很好的例子”这样的数据。

只需在 django 模板中调用它(Html 端)

但它打印 Hello This is\n 一个很好的例子

在这里为什么换行不起作用?

我的 HTML 真实代码

{% for essay in eassays %}
{{ essay.description|linebreaks }}
{% endfor %}

我已经改名了。另外,我正在加载 100 个这样的数据。任何可能的解决方案或其他逻辑!

谢谢!

标签: djangodjango-templates

解决方案


所以,我在我的数据库中存储像“这是一个很好的例子”这样的数据。

您可能存储'\\n'在数据库中,所以是一个反斜杠,后跟一个n. 不是换行符'\n'[wiki]。请注意,如果您写入\n表单元素,那么它将被转义并相应地存储。

最好<textarea>在表单元素中使用 a 让用户使用新行(按Enter)。

您可以尝试通过替换字符串来修复损坏:

from django.db.models import Replace, Value

Essay.objects.update(
    description=Replace('description', Value('\\n'), Value('\n'))
)

并因此更新您的数据库,以便'\\n'现在替换为'\n'.


推荐阅读