0

我與媒體有一個共同的問題。我有保存圖像中的媒體文件夾模式:媒體文件失敗Django

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})) 

但隨着部份,我得到一個「語法錯誤」。

對不起,發佈這樣的常見問題,但我沒有找到任何工作解決方案給我!

謝謝!

Rémi。

+0

你是否在開發或部署服務器這樣做呢? Heroku等一些託管服務可能會在從媒體文件夾中檢索圖像時出現問題。 – Phob1a 2014-10-18 21:14:43

+0

@ Phob1a我正在使用「manage.py runserver」進行開發! – taspai 2014-10-18 21:22:18

回答

0

Fitst更改{{ 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})) 
+0

嗨,謝謝你的回覆。 如果我在博客/ urls.py(博客是我的應用程序)更改它django拋出一個語法異常,但如果我把它放在Siteblog/urls.py(我的項目),他告訴我什麼,但仍然無法正常工作。 在我Siteblog/urls.py我探微有 'URL模式=模式( '', URL(R '^博客/',包括( 'blog.urls')), )' – taspai 2014-10-18 21:10:55

+0

你做進口「設置「對嗎?什麼是語法異常消息? – 2014-10-18 23:12:35

+0

@halfnibble是我正確導入和異常消息是: 請求方法:\t GET 請求URL:\t的http://本地主機:8000 /博客/條/ 14/ Django的版本:\t 1.8 異常類型:\t的SyntaxError 異常值:\t 無效的語法(urls.py,第17行) 異常位置:\t /usr/lib/python2.7/importlib/__init__.py在import_module 37行 Python的可執行文件:\t/USR/bin/python Python版本:\t 2.7.6 這意味着只有'urlpatterns + = ...'語法錯誤。 – taspai 2014-10-18 23:52:30