You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django Admin中format_html_join分隔符<br>无法渲染为HTML换行问题

问题原因

format_html_join 方法的第一个参数(分隔符)默认会被Django自动做HTML转义处理,你直接传<br>的话,最终会被转义为&lt;br&gt;,所以前端只会显示为纯文本而不是换行标签。而第二个参数是格式模板字符串,里面的静态HTML标签不会被转义,所以你写在模板里的<br>可以正常生效。
至于你尝试传入的\n属于文本换行符,HTML默认不会将其渲染为可见换行,所以完全不会显示。

解决方法

  1. 先导入Django的安全字符串工具:
from django.utils.safestring import mark_safe
  1. 把你传入的分隔符用mark_safe包裹,标记为不需要转义的安全HTML内容,同时可以把模板里多余的<br>去掉,避免第一个链接前出现多余空行,修改后代码如下:
format_html_join(
        mark_safe('<br>'), 
        '<a href="{}">{}</a>', 
        (
            (reverse("admin:research_webproductpage_change", args=[wpp.id]), wpp.title[:30]) for wpp in webproductpages
        )
)

修改后每个链接之间会用换行标签分隔,即可实现每个链接独占一行的展示效果。


内容的提问来源于stack exchange,提问作者Ozzy Black

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:06:02