You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django Admin的模型详情编辑页中显示图片

Django Admin 模型编辑页显示图片解决方案

你之前的写法报错是因为自定义的非模型字段仅添加到fields中时,Django会默认将其识别为可编辑字段,去模型里查找对应字段不存在就会抛出错误,只要补充readonly_fields配置即可,完整实现如下:


第一步:修改admin.py

from django.contrib import admin
from django.utils.html import format_html
from .models import Label

@admin.register(Label)
class LabelsAdmin(admin.ModelAdmin):
    # 把自定义的image字段加入显示列表
    fields = ("label", "in_english", "validated", "image")
    # 标记image为只读字段,这步是必填项
    readonly_fields = ("image",)

    def image(self, obj):
        # 增加空值判断,避免关联Fragment为空时路径出错
        if not obj.fragment:
            return "暂无关联片段,无法展示图片"
        # 给图片增加尺寸限制,避免撑破页面布局
        return format_html(
            '<img src="/static/fragments/{}.png" style="max-width:400px;max-height:400px;" />',
            obj.fragment
        )
    # 自定义字段在页面上显示的标题
    image.short_description = "关联片段图片"

其他注意事项

  • 如果图片加载失败,先检查Django的STATIC_URL配置是否正确,对应图片是否确实存放在static/fragments目录下
  • 如果需要适配不同部署环境的静态资源路径,可以改用static模板标签生成路径:导入from django.templatetags.static import static后,图片路径写为static(f'fragments/{obj.fragment}.png')即可

内容的提问来源于stack exchange,提问作者Song Yang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:48:04