gpt4 book ai didi

django - 设置模型的 __unicode__ 以在管理中显示 html 标签

转载 作者:行者123 更新时间:2023-12-02 05:54:24 25 4
gpt4 key购买 nike

在 django 管理员中,我有一个 TabularInline 用于 ManyToMany 字段,并设置了 raw_id_fields 。它在 html 输入字段旁边显示对象的 unicode()。

我希望它显示电子邮件链接。所以在模型的 unicode() 函数中,我放入了 html 标签来创建一个链接。但是,它显示的是 html 标签。

有没有办法告诉管理员 unicode 可以安全地显示标签?

我试过使用 allow_tags 属性,但它似乎只是一个 ModelAdmin 属性。

是否可以在不创建新模板的情况下执行此操作?

编辑:

我已经找到了发生这种情况的确切位置。位于:django/contrib/admin/widgets.py的第159行

        return '&nbsp;<strong>%s</strong>' % escape(truncate_words(obj, 14))

那里的转义就是手动转义吧。我已经测试过删除 escape() 并且它有效。我不喜欢编辑 Django 源代码的想法。我如何在不更改源的情况下解决这个问题?

最佳答案

如果您的目标只是为 ListView 显示一个电子邮件链接,我建议您为 ListView 编写一个自定义列,如下所示:

list_display = ('admin_email', ...)

def admin_email(self, object):
return '<a href="%s">%s</a>'%(admin.email, admin)
admin_email.allow_tags = True
admin_email.short_description = 'Send Email'

这样更好,因为您可能在许多其他地方使用 unicode 调用,而 html 可能会在那里导致问题。

关于django - 设置模型的 __unicode__ 以在管理中显示 html 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4094138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com