媒体文件失败Django

时间:2014-10-18 19:12:35

标签: python django django-models django-templates django-settings

我对媒体有一个共同的问题。我有一个模型将图像保存在媒体文件夹中:

class Article(models.Model):
    titre = models.CharField(max_length=100)
    auteur = models.CharField(max_length=42)
    contenu = models.TextField(null=True)
    date = models.DateTimeField(auto_now_add=True, auto_now=False, verbose_name="Date")
    photo = models.ImageField(upload_to="blog/media/upload/photos/", default="default.jpg")

但是在我的模板中,当我试图通过这种方式获取我的照片时:

<img class="photo" src="{{ media_url }} {{ article.photo }}">

{{media_url}}是空白的!

在我的settings.py文件中,我尝试了不同的配置(在本网站上找到),实际上是:

STATIC_URL = '/static/'
MEDIA_URL = '/media/'
#MEDIA_URL = 'http://localhost:8000/blog/media/'
#MEDIA_ROOT = '/blog/media/'
MEDIA_ROOT = '/home/remi/perso/django/projets/SiteBlog/blog/media/'

ROOT_PATH = os.path.dirname(__file__)

STATICFILES_DIRS = (
    os.path.join(ROOT_PATH, 'static'),
)

适用于静态文件但不适用于媒体文件。

我还尝试在urls.py中添加:

#    urlpatterns += patterns('',
#    (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
#    'document_root' : settings.MEDIA_ROOT}))

但是我得到了“语法错误”。

很抱歉发布这样的常见问题,但我找不到任何有效的解决方案!

谢谢!

雷米。

1 个答案:

答案 0 :(得分:0)

在模板中使用{{ media_url }}更改{{ MEDIA_URL }}

<img class="photo" src="{{ MEDIA_URL }} {{ article.photo }}">

并像这样更改urls.py

if settings.DEBUG:
    # static files (images, css, javascript, etc.)
    urlpatterns += patterns('',
        (r'^media/(?P<path>.*)$', 'django.views.static.serve', {
        'document_root': settings.MEDIA_ROOT}))