2012-05-22 2 views
2

에서 작동하지 그들은 올바른 디렉토리에 표시하지만, 나는이 문제가있을 때 나는 내 템플릿에서 볼하려고하면 내 템플릿에장고 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 URL은 다음과 같습니다

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}} '변수가 있습니까? DB에 어떤 가치가 있습니까? 이 설정을 어딘가에 덮어 쓰지 마라. ('django.conf 가져 오기 설정에서 확인할 수있다; print settings.MEDIA_URL') – ilvar

+0

'print settings.MEDIA_URL'은 예상대로'/ media /'를 반환한다. 템플릿에'{{city}} '변수가 포함되어있을 것입니다. 템플릿의 임의의 위치에 {{city.name}} 또는 {{city.address}}를 추가하면 적절한 텍스트가 출력되지만 main_image는 올바르게 출력되지 않습니다. – HighLife

답변

0

흥미롭게도 데이터베이스를 다시 동기화 한 후에 더 이상 문제가 발생하지 않습니다.