Reputation: 306
I want to display all my pictures which are in assigned category In for loop it doesn`t show anything, but if i don`t use for loop it displays only one image.
views.py
def lists(request, category_id):
image = get_object_or_404(Image, pk=category_id)
context = {'image': image}
return render(request, 'photo/lists.html', context)
lists.html
{% for image in images %}
<a href="#"><img src="{{ image.image.url }}" style="width:200px; height: 200px; float:left;"/></a>
{% endfor %}
models.py
class Image(models.Model):
title = models.CharField(max_length=255)
slug = models.SlugField(unique=True, max_length=255)
category = models.ForeignKey('Category')
description = models.CharField(max_length=255)
published = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
image = models.ImageField(upload_to="images")
def __unicode__(self):
return u'%s' % self.title
class Category(models.Model):
title = models.CharField(max_length=255)
slug = models.SlugField(unique=True, max_length=255)
def __unicode__(self):
return u'%s' % self.title
Upvotes: 0
Views: 363
Reputation: 2882
The problem is with your views. Using get_object_or_404
will return only one object. Use filter
instead:
def lists(request, category_id):
images = Image.objects.filter(category__id=category_id)
context = {'images': images}
return render(request, 'photo/lists.html', context)
Upvotes: 4