2012-05-15 86 views
1

我讀過有關圖像的其他問題,但我還是沒能解決我的問題:(這也可能是一些基本的東西,因爲我是新來的DjangoDjango模板 - 不顯示動態畫面

,所以我必須模型例如:

class Example(models.Model): 
    image = models.ImageField(upload_to = "examples/") 

,我想在模板來顯示它,因爲我使用通用的DetailView視圖這是關係到一個模板的圖像部分:。

<p>Image: <img src="{{ example.image.url }}"/></p> 

我改變了我的settings.py :

MEDIA_ROOT = '/home/nicpon/Dokumenty/aplikacje/images/' 
MEDIA_URL = '/images/' 

,並在這一點上網站,而圖像diplayed(在它的地方有這麼多的時候無法顯示圖像,其顯示)

現在我改變也urls.py文件:`

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

但是導致錯誤:「'list'對象在每個頁面上都沒有'resolve'屬性。

編輯: 當我把{{example.image.url}} img標籤外面顯示/images/exapmles/specific_image.jpg 和目錄到我的計算機上的圖像是/ home/nicpon/Dokumenty/aplikacje /images/examples/specific_image.jpg

而且回溯:

Environment: 


Request Method: GET 
Request URL: http://127.0.0.1:8000/images/examples/sepcific_image.jpg 

Django Version: 1.4 
Python Version: 2.6.5 
Installed Applications: 
('django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'django.contrib.admin', 
'example', 
'registration') 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware') 


Traceback: 
File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py" in get_response 
    89.      response = middleware_method(request) 
File "/usr/local/lib/python2.6/dist-packages/django/middleware/common.py" in process_request 
    67.    if (not urlresolvers.is_valid_path(request.path_info, urlconf) and 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in is_valid_path 
    531.   resolve(path, urlconf) 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in resolve 
    420.  return get_resolver(urlconf).resolve(path) 
File "/usr/local/lib/python2.6/dist-packages/django/core/urlresolvers.py" in resolve 
    300.      sub_match = pattern.resolve(new_path) 

Exception Type: AttributeError at /images/examples/specific_image.jpg 
Exception Value: 'list' object has no attribute 'resolve' 
+1

將'{{example.image。 url}}'''外面的某個地方'看看它顯示的是什麼。 – ilvar

+0

什麼是堆棧跟蹤? – goh

+0

我在問題中添加了信息 – Nicpon

回答

2

嘗試做這樣的事情是你的settings.py:

MEDIA_SERVER_URL = 'http://www.example.com/' 
MEDIA_URL = os.path.join(MEDIA_SERVER_URL, 'images/') 

,然後做

src="{{ MEDIA_URL }}{{ example.image.url }}" 

同時檢查權限:

  1. 媒體目錄(/ home/nicpon/Dokumenty/aplikacje /圖片/):如果您的網絡服務器允許讀(如:chgrp命令WWW-數據圖像)
  2. 您的網絡服務器應配置爲適當地處理媒體服務。理想情況下,可以使用單獨的媒體服務器,但是如果您有django提供媒體服務(如您的urls.py中似乎是這種情況),則應檢查相應的URL。