【发布时间】:2015-08-24 04:37:39
【问题描述】:
我正在 Windows 系统上构建一个 Django 应用程序,用户应该能够在该系统上上传图像。 但不知何故,我上传的文件最终在我的 Program Files 目录中:
C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.5.1\jre\jre\bin\WebApp\media\TestData\static\images
我只是不明白为什么我会得到这个结果。我想将这些图像存储在另一个磁盘上,例如:
G:\General\Users\Me\WebApp\media
我一直在尝试更改我的 MEDIA_ROOT 但没有任何成功。我什至不确定这是否是问题所在,或者我是否不完全了解使用 Django 上传的工作原理。
这些是我的设置:
import os
BASE_DIR = os.path.abspath(os.path.dirname(os.path.dirname('__file__')))
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'
STATICFILES_DIRS = (
# Put strings here, like "/home/html/static" or "C:/www/django/static".
# Always use forward slashes, even on Windows.
os.path.join(BASE_DIR, 'staticfiles'),
)
不知道这是否重要,但我正在使用带有 Imagefield 的模型中的 ModelForm。
【问题讨论】:
-
用户上传的文件到
MEDIA_ROOT指定的绝对路径,应该可以指向任何你有写权限的地方。文档:docs.djangoproject.com/en/1.8/ref/settings/#media-root -
我认为你的
BASE_DIR应该是os.path.dirname(os.path.dirname(__file__))。 -
谢谢@xyres!看起来它解决了它:) 愚蠢的小错误
-
@Eitre 嗨。很高兴它有帮助。我发表了我的评论作为答案。如果你能接受,那就太好了。谢谢。
标签: django upload directory settings media