2012-05-22 49 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

有趣的是,重新同步我的数据库后,我不再有问题。