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)
任何人能发现我在做什么错在这里?
你确定你的模板中有{{city}}变量吗?它在数据库中有什么价值?不要在某处重写此设置(您可以使用'from django.conf import settings; print settings.MEDIA_URL'来检查) – ilvar
'print settings.MEDIA_URL''''''''''' /'/''按预期方式返回'/ media /'。我确定我的模板包含'{{city}}'变量。如果我在模板中的随机位置添加“{{city.name}}”或“{{city.address}}”,它将输出正确的文本,但main_image不会正确输出。 – HighLife