Django-admin列表展示上传图片

1. 概述

在使用Django-admin后台管理系统开发过程中,经常需要展示上传的图片。本文将介绍如何在Django-admin列表中展示上传的图片。

2. 设置模型

首先,我们需要在Django的模型中添加一个字段来存储上传的图片。假设我们有一个模型叫做Product,我们可以在该模型中添加一个ImageField字段来存储上传的图片:

class Product(models.Model):

name = models.CharField(max_length=100)

description = models.TextField()

image = models.ImageField(upload_to='products/')

在上面的代码中,我们定义了一个ImageField字段,它的upload_to参数指定了上传的图片保存的路径,此处设置为"products/"。

3. 后台管理

3.1 创建后台管理类

为了在Django-admin中展示上传的图片,我们需要为Product模型创建一个后台管理类。在该后台管理类中,我们可以使用list_display属性来指定在列表中展示哪些字段,其中也包括我们的image字段。

from django.contrib import admin

class ProductAdmin(admin.ModelAdmin):

list_display = ('name', 'description', 'display_image')

def display_image(self, obj):

display_image.short_description = 'Image'

在上面的代码中,我们通过display_image方法定义了一个新的字段,它返回一个包含展示图片的HTML代码的字符串。

3.2 注册后台管理类

接下来,我们需要将Product模型和ProductAdmin类进行注册,以便在Django-admin中使用。在admin.py文件中添加以下代码:

from django.contrib import admin

from .models import Product

admin.site.register(Product, ProductAdmin)

4. 运行服务器

现在我们已经完成了所有必要的设置,可以运行服务器并访问Django-admin来查看我们的更改。

python manage.py runserver

运行以上命令后,我们可以在浏览器中访问 http://localhost:8000/admin 来打开Django-admin后台管理系统。

5. 查看结果

现在,在Product列表中,我们将看到一个新的字段"Image",该字段将展示上传的图片:

注意:

在展示上传的图片时,如果图片无法加载,可能是因为图片路径不正确或图片尺寸过大。请确保图片路径正确,并尝试调整display_image方法中HTML代码中的宽度和高度。

6. 总结

通过以上步骤,我们成功地在Django-admin列表中展示了上传的图片。通过自定义后台管理类的方式,我们可以灵活地控制列表中显示的字段,包括上传的图片。

这样,我们可以方便地对上传的图片进行管理和查看,为网站开发提供了更好的用户体验。

后端开发标签