如何在 django 管理界面中添加带有超链接的自定义列?
我有一个 django 管理界面,在模型列表中我想要一个自定义列,该列将是使用其中一个字段值的超链接。基本上,模型的字段之一是 url,我希望该列在可点击的超链接中包含该 URL。该链接需要在其前面添加额外的 URL,作为其在模型字段中的相对路径。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在 ModelAdmin 类中定义一个方法,并将其
allow_tags
属性设置为True
。这将允许该方法返回未转义的 HTML 以在列中显示。然后将其列为 ModelAdmin.list_display 属性中的条目。
示例:
请参阅 ModelAdmin.list_display 了解更多详细信息。
Define a method in your ModelAdmin-class and set its
allow_tags
attribute toTrue
. This will allow the method to return unescaped HTML for display in the column.Then list it as an entry in the ModelAdmin.list_display attribute.
Example:
See the documentation for ModelAdmin.list_display for more details.
使用
format_html
实用程序。这将从参数中转义任何 html,并将字符串标记为可以在模板中安全使用。allow_tags
方法属性在 Django 1.9 中已被弃用。现在,即使在以下情况下,您的管理员用户也是安全的:
请参阅 文档 了解更多信息。
Use the
format_html
utility. This will escape any html from parameters and mark the string as safe to use in templates. Theallow_tags
method attribute has been deprecated in Django 1.9.Now your admin users are safe even in the case of:
See the documentation for more info.
我使用“实例”而不是“对象”。 Seppo Erviälä 的回答对我帮助最大,因为我正在使用 Django 3.0.1。
I am using 'instance' instead of 'obj'. Seppo Erviälä's answer helped me the most as I'm using Django 3.0.1.