2013-03-03 104 views
2

我正在開發寵物商店應用程序以獲得樂趣。我的應用程序的工作原理是,它顯示一個列出所有寵物商店的頁面,以及您點擊寵物商店時的頁面。你看到寵物商店裏的所有動物。Django模型和鏈接之間的圖片鏈接

問題是,我不知道如何將模型中的圖片傳遞到模板中,而無需靜態執行,我很抱歉如果這沒有意義。

例子。當有人瀏覽商店時。他會看到所有的動物,例如名字,描述和圖片。

我可以將圖片上傳到我的管理員,但我怎麼能渲染畫面的背景下進入我的模板

image = models.FileField(upload_to="images/") 

我的模型。

from django.db import models 

class Store(models.Model): 
    name = models.CharField(max_length = 20) 
    number = models.BigIntegerField() 
    address =models.CharField(max_length = 20) 
    def __unicode__(self): 
     return self.name 

class Pet(models.Model): 
    animal = models.CharField(max_length =20) 
    description = models.TextField() 
    owner = models.ManyToManyField(Store) 
    image = models.FileField(upload_to="images/") 

    def __unicode__(self): 
     return self.animal 

我views.py

from pet.models import Store , Pet 
from django.shortcuts import render_to_response ,get_object_or_404 

def index(request): 
    store = Store.objects.all() 
    return render_to_response ('store.html',{'store':store}) 

def brazil(request , animal_id): 
    pet = get_object_or_404(Pet, pk=animal_id) 
    return render_to_response ('animal.html',{'pet':pet}) 

我store.html

Sydney's Pet Store 
{% if store %} 
<ul> 
    {% for a in store %} 
    <li><a href ="{% url world:brazil a.id %}">{{ a.name }}</li> 
    {% endfor %} 

</ul> 
{% endif %} 

我animal.html

{% if store %} 
<li>Pet = {{ store.animal }}</li> 
<li>description = {{store.description}} </li> 
<li>owner = {{ store.owner }} </li> 
{% endif %} 
+0

如果這個問題沒有意義,我會刪除它 – donkeyboy72 2013-03-03 08:24:21

+0

嘗試 catherine 2013-03-03 08:29:40

回答

3

FileField S(通過擴展ImageField)下具有一個url屬性,您可以使用獲取網址。你可以從你的模板中使用這個屬性<img src="{{ pet.image.url }}">

+0

人們通常使用這種方法嗎? – donkeyboy72 2013-03-03 08:46:16

+0

非常感謝你 – donkeyboy72 2013-03-03 08:46:43

+0

是的,這將是正常的做法。如果您使用不同的存儲插件(例如在Amazon S3上存儲文件),那麼url屬性對於某些東西來說非常聰明,它應該處理那些沒有任何更改的罰款。 – 2013-03-03 10:42:18