【问题标题】:Media files end up in in a pycharm subdirectory when uploading上传时媒体文件最终位于 pycharm 子目录中
【发布时间】: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


【解决方案1】:

您的BASE_DIR 应如下所示:

os.path.dirname(os.path.dirname(__file__))

【讨论】:

    猜你喜欢
    • 2021-06-10
    • 2019-07-04
    • 1970-01-01
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多