python版本:python 3.7.0
Django版本:2.1.7
Pycharm版本:Pycharm2018.3.2 x64
在models.py里设置的图片上传字段如下
thumbnail = models.ImageField(upload_to=image_upload_to, max_length=255, blank=True, null=True)
image_upload_to函数定义如下:
def image_upload_to(instance, filename):
ext = filename.split('.')[-1]
filename = '{}{}.{}'.format(time.strftime('%Y%m%d'), uuid.uuid4().hex[:6], ext)
return os.path.join("thumbnail", filename)
在后台可以上传成功,但是图片打不开,图片不显示。
在settings.py设置好:
MEDIA_ROOT = os.path.join(BASE_DIR, 'static', 'images')
MEDIA_URL = '/media/'
综上这样设置,那么我的图片会存在/static/images/thumbnail 下。
图片URL路径为:http://localhost:8000/media/thumbnail/201903216764c3.jpg
但是图片打不开,图片不显示。
在urls.py里增加:
from django.urls import path, re_path
from django.conf import settings
from django.views.static import serve
在urls.py里的urlpatterns内增加:
re_path(r'^media/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT}),
OK,在试试打开图片,可以打开了。