2013-03-03 6 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

+0

попробовать catherine

ответ

3

FileField с (и расширением ImageField s) имеют a url, которое вы можете использовать для получения URL-адреса. Вы можете использовать это свойство от ваших шаблонов, как этот <img src="{{ pet.image.url }}">

+0

ли люди обычно используют этот метод? – donkeyboy72

+0

большое спасибо – donkeyboy72

+0

Да, это был бы нормальный способ сделать это. Свойство url довольно хорошо разбирается в вещах, если вы используете другой плагин для хранения (например, для хранения файлов на Amazon S3), он должен обрабатывать этот файл без каких-либо изменений. –

Смежные вопросы