如何在 django admin 中显示 base64 图像?

How to display base64 image in django admin?

我有旧软件通过 django 的 BinaryField 存储机构徽标,我需要在 django 管理记录编辑页面上显示此图像

这是我的管理员:

class InstituicaoAdmin(admin.ModelAdmin):
    list_display = ['ds_instituicao', 'sigla']
    search_fields = ['ds_instituicao']
    formfield_overrides = {
        BinaryField: {'widget': BinaryFileInput()},
    }
    readonly_fields = ["imagem_logo",]

    def imagem_logo(self, obj):
        base64Encoded = base64.b64encode(obj.logo)
        return mark_safe('<img src="data:;base64,base64Encoded">')

这不行

我想要这样的:Image_FIeld

我会使用 format_html 而不是 mark_safe:

    def imagem_logo(self, obj):
        base64Encoded = base64.b64encode(obj.logo)
        return format_html('<img src="data:;base64,{}">', base64Encoded)

查看文档:https://docs.djangoproject.com/en/2.2/ref/utils/#django.utils.html.format_html