【问题标题】:Django Admin format_html_join cannot seperate with new line <br>Django Admin format_html_join 不能用换行符分隔 <br>
【发布时间】:2023-12-02 18:37:02
【问题描述】:
format_html_join(
        '<br>', '<br><a href="{}">{}</a>', (
            (reverse("admin:research_webproductpage_change", args=[wpp.id]), wpp.title[:30]) for wpp in webproductpages
            )
        )

上面我正在尝试向我的 django 管理列表显示添加多对多链接,我成功地做到了。但是 &lt;br&gt; 或 "\n" 不能作为分隔符工作,尽管 &lt;br&gt; 在第二个参数中工作。如果我将&lt;br&gt; 放在第一个参数中,它会出现在双引号中,而不是html。或者如果我输入“\n”,它根本不会出现。
我想逐行放置链接,因为这样看起来会更好。我的代码有什么问题?

【问题讨论】:

    标签: django django-admin html-escape-characters


    【解决方案1】:

    你可以试试这个

    format_html_join(
            '\n', "<a href='{}'>{}</a>", (
                (reverse("admin:research_webproductpage_change", args=[wpp.id]), wpp.title[:30]) for wpp in webproductpages
                )
            )
    

    【讨论】:

    • &lt;td class="field-link_to_listings"&gt;&lt;a href="/admin/research/webproductpage/5323/change/"&gt;Anchor Hocking 93013A Barbary &lt;/a&gt; &lt;a href="/admin/research/webproductpage/41891/change/"&gt;Anchor Hocking 93013A 5 oz Bar&lt;/a&gt;&lt;/td&gt; 已经尝试过了,但它没有创建新行
    【解决方案2】:

    您可以将分隔符标记为安全!

    from django.utils.safestring import mark_safe
    
    format_html_join(
        mark_safe('<br>'),
        '<a href="{}">{}</a>',
        ...
    )
    

    【讨论】: