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它的解决方案比我想象的要简单得多。非常感谢你!!