先来看一个例子,该例子是让其在编辑界面里添加了个字段,其字段内容为搜索同姓氏人员的一个链接,该实现是在models.py
里实现的
# models.py from django.utils.html import format_html class Staff(models.Model): ... def seek_same(self): """ 编辑界面里的扩展字段的内容以链接方式实现的方法 """ return format_html('<a href="../../staff/?first_name__exact={}" target="_blank">{}</a>', self.first_name, self.first_name) seek_same.short_description = '同姓氏人员' # 短描述:即字段名 # 显示HTML tag # 对于用户提交的数据, 永远不要这么设置! seek_same.allow_tags = True
这里定义了一个def seek_same(self):
的回调函数,用于返回一个扩展字段的内容,由于字段内容的回显会做转码处理,所以在这里我们需要用到一个format_html()
函数,用来直接转成html
格式。
format_html()
函数第一个参数为模板字串,模板字串里的变量以"{}"标识,按位置依次与第二个参数及其后的参数对应。
另外一种是实现在列表里添加扩展列的实现方式,是在admin.py
里实现的,可以参考'Django后台列表添加扩展列,字段内容以链接方式实现的方法'