Django-admin列表展示上传图片

1.在models.py文件中创建表ImageField类型字段

1 class user(models.Model):
2     img = models.ImageField(upload_to='static/upload/')  # 创建一个图像字段,upload_to设置图片保存地址

2.在admin.py

 1 from django.utils.safestring import mark_safe#导入make_safe
 2 # Register your models here.
 3 class userAdmin(admin.ModelAdmin):
 4     list_display = ('username','email','image_data')
 5     #readonly_fields = ('image_data',)  # 必须加这行 否则访问编辑页面会报错
 6     search_fields = ('username','email')
 7     # 创建一个自定义方法
 8     def image_data(self, obj):
 9         #使用mark_safe返回内容,否则页面将以html实体展示输出结果
10         return mark_safe('<img src="/%s" width="50px">'%(obj.img))#src紧跟/ 表示根目录
11 
12 admin.site.register(models.user,userAdmin)    

3.在settings.py设置静态文件

1 STATIC_URL = '/static/'
2 
3 STATICFILES_DIRS=[
4     os.path.join(BASE_DIR,'static')
5 ]