【发布时间】:2018-01-31 02:10:08
【问题描述】:
我有一个包含 ImageField 和 FileField 的表单
文件正在上传到正确的文件夹,但是当我尝试检索要在屏幕上显示的 url 时,它给了我一个不正确的位置
fs_img = FileSystemStorage(location='media/images/')
imageName = fs_img.save(image.name,image)
uploaded_image_url = fs_img.url(imageName)
例如图片上传为 media/images/profile_image.jpg 但是,当我尝试检索刚刚保存的文件的 url 时,为了将位置保存到数据库,它会将其检索为不存在的 media/profile_image.jpg
我知道 FileSystemStorage 使用的默认位置是 MEDIA_ROOT,这似乎正是 fs_img.url(imageName) 使用的位置 在哪里
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
另外,我发现在 models.py 文件中使用 upload_to 设置没有效果
image = models.ImageField(
upload_to = 'media/images/',
default='media/no_image.png'
)
如何让 fs_img.url(imageName) 返回正确的 URL,以便将其保存到我的数据库中?
【问题讨论】:
标签: python django url file-system-storage