2017-06-16 151 views
0

我有一個模型,我有一個圖像名稱,圖像描述和圖像。我想使用這些字段來顯示帶有圖像描述的div,並在模型中爲每行顯示縮略圖。現在,當我試圖使我得到了模板:django ImageField不顯示,拋出ImportError

TypeError: 'ImageFieldFile object is not subscriptable 

    During handling of the above exception another error occured: 

    ImportError: No module named 'backends' 

代碼:

Models.py

class PictureType(models.Model): 
    name = models.CharField(max_length = 150) 
    description = models.CharField(max_length = 1000) 
    image = models.ImageField(upload_to='AppName/images/') 

views.py

class indexView(generic.ListView): 
    model = PictureType 
    template_name = 'index.html' 

的index.html

{% for visual in object_list %} 
<div class="col-sm-4"> 
    <div class="thumbnail"> 
     <a href="#" class=""> 
      <div align="center" class={{ visual.name }}> 
       <h4 class="">{{ visual.name }}</h4> 
       <p class="">{{ visual.description }} 
       </p> 
      </div> 
      <img src= "{{ visual.image.url }}" alt="..." class=""> 
     </a> 
    </div> 
</div> 
{% endfor %} 

settings.py

MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'media') 
MEDIA_URL = '/media/' 

urls.py

urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^$', indexView.as_view(), name = 'index'), 
] 
urlpatterns += staticfiles_urlpatterns() 
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

UPDATE: 當我改變:

<img src= "{{ visual.image.url }}" alt="..." class=""> 

<img src= "{{ visual.image }}" alt="..." class=""> 

我沒有得到上述錯誤,但圖像不通過任何一個,它們看起來像這樣:enter image description here

回答

0

聽起來像你試圖導入'後端'模塊在你的代碼中的某個地方,但它不存在在python路徑中。
希望這有幫助。

+0

我在'settings.py'中有'BACKEND':'django.template.backends.django.DjangoTemplates'。 – imanidiot

+0

如果你想導入它,那麼它需要拼寫'後端'** **。 – doratheexplorer0911