Eriks
Eriks

Reputation: 306

all pictures display from category django

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

Answers (1)

arocks
arocks

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

Related Questions