django admin显示网络图片缩略图

关于django admin显示缩略图的问题,记录下开发中显示网络图片的方法

model.py


class GoodsInfo(models.Model):
    shopping_info = models.ForeignKey(LogisticsInfo, on_delete=models.SET_NULL,null=True,blank=True, verbose_name='订单号')
    product_id = models.CharField(max_length=50, blank=True, null=True, verbose_name='产品id')
    goods_name = models.CharField(max_length=255, blank=True, null=True, verbose_name='产品名')
    item_img = models.CharField(max_length=255, blank=True, null=True, verbose_name='产品图片')
    sku_info = models.CharField(max_length=255, blank=True, null=True, verbose_name='产品属性')
    sku_num = models.IntegerField(blank=True, null=True, verbose_name='产品数量')
    sku_price = models.IntegerField(blank=True,null=True,verbose_name='商品单价')
    add_time = models.DateTimeField(auto_now_add=True, verbose_name='添加时间')

    class Meta:
        verbose_name = '商品信息'
        verbose_name_plural = verbose_name
        db_table = 'goods_info'

    def image_img(self):
        if self.item_img:
            return mark_safe('<img src="%s" />' % self.item_img)
        else:
            return u'图片'

    image_img.short_description = '缩略图'
    image_img.allow_tags = True
    def __str__(self):
        return self.product_id

模型定义的image_img函数需要在admin注册

class GoodInfoAdmin(object):
    list_display = ['shopping_info','product_id','goods_name','image_img','item_img','sku_info','sku_num','sku_price','add_time']

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django中生成收集的图片缩略图,可以使用Pillow库。以下是一个简单的示例代码: ```python from PIL import Image from django.conf import settings from django.core.files.storage import default_storage from django.core.files.base import ContentFile def generate_thumbnail(image_path, thumbnail_path, thumbnail_size): with default_storage.open(image_path, 'rb') as f: with Image.open(f) as im: im.thumbnail(thumbnail_size) with default_storage.open(thumbnail_path, 'wb') as tf: im.save(tf, 'JPEG') def save_model(instance, force_insert=False, force_update=False, using=None, update_fields=None): # 保存模型前的处理 super().save(force_insert, force_update, using, update_fields) # 生成缩略图 image_path = instance.image.name if image_path: thumbnail_path = '%s_thumbnail.jpg' % (instance.image.name,) thumbnail_size = (100, 100) generate_thumbnail(image_path, thumbnail_path, thumbnail_size) ``` 在上述代码中,我们定义了一个generate_thumbnail函数,用于生成缩略图。该函数接受三个参数:原始图片的路径、缩略图的路径、缩略图的大小。 同时,我们也定义了一个save_model方法,在保存模型时会自动调用该方法。在该方法中,我们调用了generate_thumbnail函数生成缩略图,并将其保存到默认存储中。 需要注意的是,我们在生成缩略图的路径中添加了_thumbnail的后缀,以避免与原始图片的文件名冲突。同时,我们在生成缩略图时也可以根据需要调整缩略图的大小。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值