2010-10-20 3 views
2

J'ai le code suivant qui ne parvient pas à afficher les images d'objet. Mais affiche bien les images normales.Comment afficher des objets image dans un modèle Django à l'aide d'une balise de modèle personnalisée? (codage inclus)

Mon modèle

class News(models.Model): 
title----------- 
image = models.ImageField(upload_to='images') 
body------------ 

tag modèle de codage

from django import template 
register = template.Library() 
from ----.models import --- 

def funct(num): 
myobjects = News.objects.all()[:num] 
return {'objects': myobjects} 
register.inclusion_tag('news/template.html')(funct) 
modèle

codage

{% for object in objects %} 
<li>{{ object.title }}</li> 
<li><img src="{{ MEDIA_URL }}images/{{ object.image }}" alt="image" /></li> 
<li>{{ object.body }}</p></li> 
{% endfor %} 

Ce code renvoie toutes les informations variables telles que le titre et le corps dans une liste mais il ne n'affiche pas l'image associée. J'ai essayé de nombreuses variantes sur ce code sans succès. Ceci est étrange car lorsqu'une image est appelée à partir du dossier d'image de la manière suivante

<img src="{{ MEDIA_URL }}images/star.jpg" /> 

Tout fonctionne correctement. Les problèmes se produisent quand une image de modèle est appelée. Toute aide permettant de résoudre ce problème est très appréciée

+0

Mais l'image est-elle associée à l'objet présent dans le répertoire MEDIA_URL/images? –

+0

Oui, l'image associée se trouve dans le répertoire MEDIA_URL/images – Stu

+0

Pouvez-vous ajouter ce qui apparaît réellement dans le rendu HTML? – OmerGertel

Répondre

5

Cela n'a rien à voir avec la balise de modèle personnalisé. Si vous avez regardé la source de la page rendue, vous verrez que {{ object.image }} ne génère pas l'URL de l'image. Vous devez utiliser {{ object.image.url }}

Questions connexes