我对媒体有一个共同的问题。我有一个模型将图像保存在媒体文件夹中:
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}))
但是我得到了“语法错误”。
很抱歉发布这样的常见问题,但我找不到任何有效的解决方案!
谢谢!
雷米。
答案 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}))