django-simpleui如何显示缩略图

现在点击图片名称能跳转到图片,但是我想直接看到图片

models.py

from django.db import models


# Create your models here.

class Demo(models.Model):
    session_key = models.CharField(max_length=40)
    session_data = models.CharField(max_length=40)
    expire_date = models.DateTimeField()


class Dog(models.Model):
    name = models.CharField(max_length=15, verbose_name='小狗名字')
    age = models.IntegerField(verbose_name='小狗年龄', default=0)
    icon = models.ImageField(upload_to='images/', verbose_name='小狗头像')

admin.py

from .models import Demo, Dog
from django.utils.safestring import mark_safe
from import_export.admin import ImportExportModelAdmin


class DemoAdmin(admin.ModelAdmin):
    list_display = ['id', 'session_key', 'session_data', 'expire_date']


class DogAdmin(ImportExportModelAdmin):
    list_display = ['id', 'name', 'age', 'icon']
    list_filter = ['name', 'age']  # 过滤器  页面搜索
    list_per_page = 10

    def img(self, obj):
        div = f"<img src='{obj.icon.url}' width='50px' height='50px'>"
        return mark_safe(div)


admin.site.register(Demo, DemoAdmin)
admin.site.register(Dog, DogAdmin)

目前是这样,点击图片能跳转,但是我想直接看到缩略图,而不是跳转过去

img

  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7553743
  • 这篇博客你也可以参考下:django之simpleui安装
  • 除此之外, 这篇博客: django-simpleui 后台主题框架安装使用中的 自定义图标 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • simpleui仅为系统默认模块提供了图标,如果要为其他模块指定图标,可以自定义配置。图标参考请查阅:图标说明

    优先级: 自定义->系统配图->默认图标

    注:simpleui 原则上不涉及代码,所以采用setting方式。后续可考虑扩展Model的 Meta class 进行配置图标

    字段说明
    name模块名字,请注意不是model的命名,而是菜单栏上显示的文本,因为model是可以重复的,会导致无法区分
    icon图标
    例子:
    SIMPLEUI_ICON = {
        '系统管理': 'fab fa-apple',
        '员工管理': 'fas fa-user-tie'
    }
    
    

    更改管理后台名称

    # app/admin.py

    admin.site.site_header = '小白龙冲冲冲'  
    admin.site.site_title = '小白龙'  
    admin.site.index_title = '3'



    https://github.com/newpanjing/simpleui

    https://github.com/newpanjing/simpleui/blob/master/QUICK.md

  • 您还可以看一下 CSDN就业班老师的Django框架+项目实战课程中的 项目实战前台之购物车实战2小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    您好,关于使用django-simpleui显示缩略图的问题,需要进行以下操作:

    1. 首先在models.py中为图片字段添加缩略图属性,可以使用django-imagekit库实现。比如:
    from imagekit.models import ImageSpecField
    from imagekit.processors import ResizeToFill
    
    class MyModel(models.Model):
        ...
        image = models.ImageField(upload_to='images')
        image_thumbnail = ImageSpecField(source='image',
                                          processors=[ResizeToFill(100, 100)],
                                          format='JPEG',
                                          options={'quality': 60})
        ...
    
    1. 在admin.py中注册模型时,将缩略图字段添加到list_display中,比如:
    class MyModelAdmin(admin.ModelAdmin):
        list_display = ('id', 'name', 'image_thumbnail')
    
    1. 然后需要在模板中引入easy_thumbnails标签库,比如:
    {% load easy_thumbnails %}
    {% thumbnail object.image_thumbnail "100x100" crop="center" as im %}
        <img src="{{ im.url }}" alt="{{ object.name }}">
    {% endthumbnail %}
    

    这样就可以实现在页面上显示缩略图了。

    希望能对您有所帮助。