Reputation: 7200
How I can represent foreign keys in templates?
Models.py
class Trabajo(models.Model):
titulo = models.CharField(blank=True, max_length=150)
imagen = models.ImageField(upload_to='perfiles', verbose_name = 'Small image')
descripcion = models.TextField()
fecha = models.CharField(blank=True, max_length=150)
link = models.CharField(blank=True, max_length=150)
cliente = models.CharField(blank=True, max_length=150)
def __unicode__(self):
return self.titulo
class Imagen(models.Model):
titulo_proyecto = models.ForeignKey(Trabajo, related_name='+')
imagenes = models.ImageField(upload_to='perfiles', verbose_name = 'Imagen')
def __unicode__(self):
return unicode(self.titulo_proyecto)
Views.py
def index(request):
trabajos = Trabajo.objects.all()
imagenes = Imagen.objects.all()
return render_to_response('index.html', {'works': trabajos, 'images': imagenes})
index.html
{% for item in works %}
{% for obj in item.images.all %}
{{obj.imagenes}}
{% endfor %}
{% endfor %}
Upvotes: 0
Views: 126
Reputation: 22808
Views.py
def index(request):
trabajos = Trabajo.objects.all()
imagenes = Imagen.objects.all()
return render_to_response('index.html', {'works': trabajos, 'images': imagenes})
index.html
{% for item in works %}
{{item.id}}
{% for obj in images %}
{% ifequal item.id obj.titulo_proyecto_id %}
{{item.id}} <img src="{{ MEDIA_URL }}{{obj.imagenes}}" />
{% endifequal %}
{% endfor %}
{% endfor %}
Upvotes: 1
Reputation: 3125
Okay, I think I know what you mean. First, you should clean up your view so it doesn't hit the database more often than it needs to. Change:
trabajos = Trabajo.objects.all()
imagenes = Imagen.objects.all()
to:
trabajos = Trabajo.objects.all().select_related()
Now try:
{% for item in works.imagen_set.all %}
<img src="{{ MEDIA_URL }}{{ item }}" />
{% endfor %}
Upvotes: 1