2012-05-22 98 views
2

工作,我可以在Django管理上傳圖片和它們出現在正確的目錄,但是當我有這些問題,當我嘗試在我的模板來查看他們:在我的模板的Django ImageField的不是模板

{% if city.main_image %}返回false

{{ city.main_image.url }}返回任何

{{ city.main_image }}回報無

當我點擊管理預覽我得到這個404:

Request URL: http://127.0.0.1:8000/admin/search/city/1/test/test.jpg/ 
city object with primary key u'1/test/test.jpg' does not exist. 

模板的其餘部分輸出與城市對象相關的正確信息。 這裏是我的settings.py網址:

MEDIA_ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__)), "html/static") 
MEDIA_URL = '/media/' 
STATIC_ROOT = '' 
STATIC_URL = '/static/' 
ADMIN_MEDIA_PREFIX = '/static/admin/' 

urls.py

from django.conf.urls.defaults import patterns, include, url 
from test import settings 

from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('test.search.views', 
    url('^search/$', 'search', name="home_page"), 
    url(r'^(\d+)/$', 'city', name="city_page"), 
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 
    url(r'^admin/', include(admin.site.urls)), 
) 

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

models.py

class City(models.Model): 
    name = models.TextField("Course Name", blank=False) 
    address = models.TextField("Address", blank=False) 
    city = models.TextField("City", blank=False) 
    state = models.TextField("State", blank=False) 
    country = models.TextField("Country", blank=False) 
    main_image = models.ImageField(upload_to="test", blank=True) 

任何人能發現我在做什麼錯在這裏?

+0

你確定你的模板中有{{city}}變量嗎?它在數據庫中有什麼價值?不要在某處重寫此設置(您可以使用'from django.conf import settings; print settings.MEDIA_URL'來檢查) – ilvar

+0

'print settings.MEDIA_URL''''''''''' /'/''按預期方式返回'/ media /'。我確定我的模板包含'{{city}}'變量。如果我在模板中的隨機位置添加「{{city.name}}」或「{{city.address}}」,它將輸出正確的文本,但main_image不會正確輸出。 – HighLife

回答

0

有趣的是,重新同步我的數據庫後,我不再有問題。