如何在Django Admin中进行图片处理和缩略图生成
在Django Admin中进行图片处理和缩略图生成,可以使用Pillow库和Django Imagekit库。
1、安装Pillow和Django Imagekit库
在命令行中运行以下命令:
pip install Pillow pip install django-imagekit
2、在models.py中添加图片字段
from django.db import models from django.utils.html import format_html from imagekit.models import ImageSpecField from imagekit.processors import ResizeToFill class MyModel(models.Model): name = models.CharField(max_length=50) image = models.ImageField(upload_to='images') thumbnail = ImageSpecField(source='image', processors=[ResizeToFill(100, 100)], format='JPEG', options={'quality': 60}) def __str__(self): return self.name def image_tag(self): return format_html('<img src="{}" width="150" />'.format(self.thumbnail.url)) image_tag.short_description = 'Thumbnail'
在这个例子中,我们在MyModel中添加了一个图片字段“image”,并且设置了它的缩略图字段“thumbnail”。
3、在admin.py中注册模型,并定制模型表单
from django.contrib import admin from .models import MyModel class MyModelAdmin(admin.ModelAdmin): list_display = ('name', 'image_tag') admin.site.register(MyModel, MyModelAdmin)
在这里,我们自定义了模型表单的展示,添加了一个自定义的“image_tag”字段,用于显示缩略图。
4、在模板中使用图片字段
{% if object.image %} <img src="{{ object.thumbnail.url }}" alt="{{ object.name }}"> {% else %} No image available {% endif %}
在这个例子中,我们使用Django模板语言展示了缩略图,如果没有图片,则显示“No image available”。
鉴于您提供的字符串示例,“pidancode.com”和“皮蛋编程”不是图片,因此无法提供该实例的完整代码演示。但是,您可以通过上述代码示例自行实现类似的图片处理和缩略图生成功能。
相关文章