通过django admin问题将图像保存在静态/媒体文件夹中

时间:2016-05-22 13:50:54

标签: django model admin

请告诉我为什么当我通过管理员保存图片时我看不到它?图像保存在数据库中,但如果只是在管理面板中按下已保存图像的链接,我就看不到了。我找不到页面(404),因为此路径中没有图像文件,但如果我在项目中的文件夹中插入相同路径的文件,我可以看到它。因此,正确定义静态文件路径 我在模型中有图像字段:

 photo = models.ImageField(upload_to = 'photo/', blank=True)`

设置:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static")
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)
MEDIA_ROOT = os.path.join(BASE_DIR, '..', 'static','media')
MEDIA_URL = '/static/media/'

并且似乎应该将其保存在我的项目静态文件夹中,但事实并非如此。

我的项目结构:

project/
       -app/
    -static/
           --media/
                  ---photo/

1 个答案:

答案 0 :(得分:2)

媒体根应该是这样的 -

MEDIA_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static','media')

确保以下事项 - 存在一个名为' static'的文件夹。在项目所在的文件夹中。它应该包含一个名为' media'的文件夹。

更新:我认为您的文件夹结构有误。以下应该是您的设置结构 -

-static                            // MEDIA_ROOT and STATIC_ROOT setting
    -media                         // MEDIA_ROOT setting
-project(src)
    -app1
        -models.py
        -views.py
        -...
    -static                        // STATICFILES_DIRS setting