一尘不染

如何在django管理界面中添加带有超链接的自定义列?

django

我有一个django管理界面,在模型列表中,我想要一个自定义列,该列将是使用字段值之一的超链接。基本上,模型的字段之一是URL,我希望该列在可单击的超链接中具有该URL。该链接将需要附加其他URL,作为其在model字段中的相对路径。


阅读 1033

收藏
2020-03-30

共1个答案

一尘不染

在ModelAdmin类中定义一个方法,并将其allow_tags属性设置为True。这将允许该方法返回未转义的HTML,以显示在该列中。

然后在ModelAdmin.list_display属性中将其作为条目列出。

例:

class YourModelAdmin(admin.ModelAdmin):
    list_display = ('my_url_field',)

    def my_url_field(self, obj):
        return '<a href="%s%s">%s</a>' % ('http://url-to-prepend.com/', obj.url_field, obj.url_field)
    my_url_field.allow_tags = True
    my_url_field.short_description = 'Column description'
2020-03-30