2012-09-19 65 views
0

如何在模板中顯示圖像?Django。如何在模板中顯示圖像

我嘗試這樣的事情(但不工作):

這是我的模型:

from django.db import models 

class Photo(models.Model): 
    title = models.CharField(max_length=255) 
    img = models.ImageField(upload_to="media/galery") 

    class Meta: 
     verbose_name = "Galery" 
     verbose_name_plural = "Galery" 

    def __unicode__(self): 
     return self.title 

views.py

from django.shortcuts import render_to_response 
from django.template import RequestContext 

from kolejny.galery.models import Photo 

def photo(request): 
    photos = Photo.objects.all() 
    return render_to_response('photo.html', {'photos' : photos}, context_instance=RequestContext(request)) 

photo.html

{% for p in photos %} 
<img src="{{ p.img.url }}"/> 
{% endfor %} 

urls.py

urlpatterns = patterns('', 
    # Uncomment the next line to enable the admin: 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^photo/$', 'galery.views.photo'), 
    url(r'^site_media/(.*)$', 'django.views.static.serve', {'document_root' : os.path.join(os.path.dirname(__file__), 'site_media')}), 
) 

settings.py:

MEDIA_ROOT = '' 
MEDIA_URL = '' 
STATIC_ROOT = '' 
STATIC_URL = '/static/' 

如何解決呢?

+3

你會得到什麼輸出?你能更詳細地描述什麼不起作用嗎?你是404的圖像,你是否得到語法錯誤等等等等...... – potench

回答

3

設置你的MEDIA_ROOT變量爲指向的實際圖像,如文件夾:

MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'site_media') 

和urls.py線指向同一個文件夾:

url(r'^site_media/(.*)$', 'django.views.static.serve', {'document_root' : settings.MEDIA_ROOT}), 

和MEDIA_URL:

MEDIA_URL = '/site_media/' 
相關問題