Python 仅自定义一个列管理模板

Python 仅自定义一个列管理模板,python,django,admin,Python,Django,Admin,我有这样简单的模型 class Result(models.Model): detail = models.TextField(blank=True) in_file = models.TextField(blank=True) out_file = models.CharField(max_length=2000,blank=True) pub_date = models.DateTimeField('date published',default=dateti

我有这样简单的模型

class Result(models.Model):
    detail = models.TextField(blank=True)
    in_file = models.TextField(blank=True)
    out_file = models.CharField(max_length=2000,blank=True)
    pub_date = models.DateTimeField('date published',default=datetime.datetime.now())
现在我想在管理模板中添加
标记

第一次尝试

class ResultAdmin(admin.ModelAdmin):

    list_display = ["in_file","show_out_file","detail","pub_date"]

    def show_out_file(self,obj):
        return "<audio>test</audio>"
        #return "<audio>" +obj.out_file +"</audio>" ## it doesn't work though.
类ResultAdmin(admin.ModelAdmin):
列表显示=[“输入文件”、“显示文件”、“详细信息”、“发布日期”]
def显示文件(自身、obj):
返回“测试”
#返回“+obj.out_file+”###但它不起作用。
它直接向页面显示
test
,标签被解析

接下来,我想我应该覆盖管理模板

所以我制作了这个文件
templates/admin/base\u site.html
并进行编辑

它的作品,我可以自定义管理的主页

但是,如何编辑模型(
结果)
)管理页面或仅更改文件列???

您需要使用函数来呈现标记

from django.utils.html import format_html


class ResultAdmin(admin.ModelAdmin):
    list_display = ["in_file", "show_out_file", "detail", "pub_date"]

    def show_out_file(self, obj):
        audio_html = """
        <audio controls>
          <source src="horse.ogg" type="audio/ogg">
          <source src="horse.mp3" type="audio/mpeg">
          Your browser does not support the audio element.
        </audio>
        """
        return format_html(audio_html)
来自django.utils.html导入格式\u html
类ResultAdmin(admin.ModelAdmin):
列表显示=[“输入文件”、“显示文件”、“详细信息”、“发布日期”]
def显示文件(自身、obj):
音频_html=“”
您的浏览器不支持音频元素。
"""

return format_html(audio_html)
woooo它的解决方案比我想象的要简单得多。非常感谢你!!