需求
在django admin后台实现图片上传功能

使用
setting.py配置
上传图片在项目中的存储跟目录路径
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media')
MEDIA_URL = '/media/'
数据库模型配置
class CloudPlatform(models.Model):
logo_url = models.ImageField(verbose_name='icon图片', null=True, blank=True, upload_to='image', max_length=200)
数据库模型修改之后,进行迁移
python manage.py makemigrations
python manage.py migrate
admin后台注册
class CloudPlatformConfigAdmin(admin.ModelAdmin):
list_display = ('id', 'name', 'key', 'provider', 'status', 'logo_url')
admin.site.register(CloudPlatform, CloudPlatformConfigAdmin)
admin后台页面如下:

图片上传之后路径如下

图片存储路径由MEDIA_ROOT和模型字段中的upload_to共同来决定。如果不配置MEDIA_ROOT,则图片将存储在根目录下的image文件夹下。
数据库存储值
在数据库中存储的是每一个文件的相对路径,只跟字段的up_load属性有关

网友评论