imageField 中的 upload_to 属性无法将图像保存在磁盘上

Posted

技术标签:

【中文标题】imageField 中的 upload_to 属性无法将图像保存在磁盘上【英文标题】:upload_to property in imageField can not save image on disk 【发布时间】:2012-12-29 08:29:28 【问题描述】:

我是 django 的初学者。我想要一个 imageField 我的 ModelForm 可以保存上传到我磁盘中的 upload_to 路径的图像,但是当我通过管理站点时,我看到该图像保存在一个 url 而不是我磁盘上的目录中。

user_image = models.ImageField( upload_to= '/images/', null=True , blank=True )

setting.py

MEDIA_ROOT = 'C:\...\static'

当我点击管理站点中的图片链接时,它会转到这样的网址:

http://127.0.0.1:8000/admin/time_save/userprofile/6/16.png/

我搜索了很多问题,但没有找到明确的解决方案。 提前致谢,

【问题讨论】:

【参考方案1】:

您可以执行以下操作:

UPLOAD_ROOT = 'C:\...\static'

upload_storage = FileSystemStorage(location=UPLOAD_ROOT, base_url='/uploads')

image = models.ImageField(upload_to='/images', storage=upload_storage)

PS:您可以在设置文件中定义 UPLOAD_ROOT。

还请仔细阅读设置您自己的custom storage

【讨论】:

【参考方案2】:

更新urls.py

from django.conf.urls.static import static urlpatterns = [ url(....), ] if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

【讨论】:

以上是关于imageField 中的 upload_to 属性无法将图像保存在磁盘上的主要内容,如果未能解决你的问题,请参考以下文章

Django - 无法为具有动态 upload_to 值的 ImageField 创建迁移

请教朋友们,django如何动态改变ImageField,FileField的upload_to?...

Django - 手动将图像保存到 ImageField 字段

DAY20-Django之FileField与ImageField

django之对FileField字段的upload_to的设定

django -- ImageField 上传图片修改头像