2014-03-25 87 views
1

我目前正在學習如何在Django中上傳和顯示圖像,但我遇到了一個塊,我無法弄清楚如何從數據庫調用圖像位置,然後將其顯示在模板中...我錯過了什麼?Django,在模板中顯示上傳的圖像URL

設置

MEDIA_ROOT = '/Users/chr/Desktop/DJANGO-APP/media/' 
MEDIA_URL = '/media/' 

車型

class Product(models.Model): 
    product_name = models.CharField(max_length=200) 
    product_description = models.TextField() 
    def __unicode__(self): 
     return self.product_name 

class Image(models.Model): 
    product_image = models.ForeignKey(Product) 
    image = models.ImageField(upload_to='image') 

意見

def productpage(request, product_image_id): 
    product = get_object_or_404(Product, pk=product_image_id) 
    render(request, 'polls/productpage.html', {'product': product}) 

HTML

<h1>{{ product.product_name }}</h1> 
<br> 
{{ product.product_description }} 
<br> 
{{ product.image.url }} 

編輯:

urls.py(主)

from django.conf.urls import patterns, include, url 
from django.conf import settings 
from django.conf.urls.static import static 
from django.contrib import admin 

admin.autodiscover() 

urlpatterns = patterns('', 
    url(r'^polls/', include('polls.urls', namespace="polls")), 
    url(r'^admin/', include(admin.site.urls)), 
) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 
+0

你可以顯示你的主要urls.py? – Tony

+0

現在增加問題。 – AllTheTime

+0

在模型的管理面板中,您是否可以打開圖像鏈接並進行渲染? – Tony

回答

2
def productpage(request, product_image_id): 
    product = get_object_or_404(Image, product_image=product_image_id) 
    render(request, 'polls/productpage.html', {'product': product}) 

我想product_image_id指產品ID?

+0

是的。它是在「syncdb」運行時創建的,並且存在ForeignKey(圖像中的product_image) – AllTheTime