Django 用户认证 用户 邮箱登录 邮箱注册 ORM or,and,not form.py FORM ModelForm Paginator 分页 HTMl JQuery 定位元素 ajax django切片 restfulapi 跨域 Ubantu Python Mysql Scrapy 爬虫 导出 Python读写 Pycharm 破解 session re sqlit3 生成式 其他 Prism 富文本 CSS Nginx 部署 请求头 抓包 协议 selenium Ubuntu 宝塔 AI Comfy-ui ollama dify open-webui Git docker
django后台管理页列表显示图片缩略图
张建行 2021年2月12日 07:15 36 文章标签: Django Ubantu Python 导出 部署

在admin.py中

导入format_html工具

from django.utils.html import format_html
class StudentAdmin(ImportExportModelAdmin):
    def show_img(self, obj):
        # head_img 字段类型是ImageField
        img = format_html('<img src="{}" width="80px" style="border-radius:10px"/>', (obj.head_img.url))
        return img
 
    show_img.short_description = '缩略图'  # 设置字段显示的名字
    show_img.allow_tags = True
    readonly_fields = ['show_img']  # 在详情页显示缩略图
    list_display = ["stu_name", 'show_img', "head_img", "balance", 'check_Log']  # 在显示列表中设置添加的字段‘show_img’
    search_fields = ['stu_name', 'balance', 'check_Log']
    list_filter = ['stu_name', 'balance', 'check_Log']
    list_editable = ['balance']

models.py字段

class Student(models.Model):
    stu_name = models.CharField(max_length=40, verbose_name="学生姓名")
    head_img = models.ImageField(verbose_name="学生头像", upload_to="head_img/")
    balance = models.IntegerField(default=0, verbose_name="总金额")
    create_time = models.DateTimeField(auto_now_add=True, verbose_name="创建时间")
    class_name = models.ForeignKey(Class_name, on_delete=models.CASCADE, verbose_name="所属班级")
    check_Log = models.ForeignKey(Log, on_delete=models.CASCADE, related_name="check_log", verbose_name='修改日志')
 
    def __str__(self):
        return self.stu_name
 
    class Meta:
        verbose_name = "学生信息"
        verbose_name_plural = "学生信息"
        db_table = "Student"