无法在django settings.py中更新media_root

时间:2012-01-11 19:25:30

标签: django django-settings django-staticfiles django-media

我尝试设置MEDIA_ROOT但是当我在settings.py中设置它时,它似乎无法识别。例如,我的s​​ettings.py看起来像:

...

MEDIA_ROOT = '/static/files/'

...

在模板中(测试此更改) - 我尝试了:

Media root: {{ MEDIA_ROOT }}
static url: {{STATIC_URL }}

静态网址显示正常,我可以更新和更改它,这些更改会反映在测试模板中。但是,媒体根始终是空字符串。是否需要一些额外的配置才能开始使用MEDIA_ROOT - 如果有人可以指向我的文档吗?

1 个答案:

答案 0 :(得分:1)

默认情况下,您可以使用两个上下文变量(只要在渲染模板时使用RequestContext实例:

MEDIA_URL - 由django.core.context_processors.media

提供

STATIC_URL - 由django.code.context_processors.static

提供

这两个上下文处理器都在默认列表中,您可以在https://docs.djangoproject.com/en/1.3/ref/settings/#template-context-processors

中看到

MEDIA_ROOT应该是文件系统路径,用于在磁盘上加载和保存媒体。应该没有任何理由在模板中使用它。如果你真的需要访问它,那么编写你自己的上下文处理器来提供它就足够了。

媒体处理器上的文档btw位于https://docs.djangoproject.com/en/1.3/ref/templates/api/#django-core-context-processors-media