how can i get all images of item into context i tried {% for image in item.images.all %} in template but it doesn’t work. i dunno how to filter it , ty for ur answer
models
JavaScript
x
32
32
1
class Item(models.Model):
2
name = models.CharField(max_length=255)
3
slug = models.SlugField(max_length=255, unique=True)
4
brand = models.ForeignKey(Brand, on_delete=models.CASCADE, blank=True)
5
collection = models.ForeignKey(Collection, on_delete=models.CASCADE)
6
category = models.ForeignKey(Category, on_delete=models.CASCADE)
7
sub_category = models.ForeignKey(SubCategory, on_delete=models.CASCADE, null=True)
8
description = models.TextField(blank=True)
9
image = models.ImageField(upload_to='photos/%Y/%m/%d/', null=True)
10
size = ArrayField(models.CharField(max_length=255))
11
price = models.PositiveIntegerField()
12
on_sale = models.BooleanField(default=0)
13
discount = models.PositiveIntegerField(null=True, blank=True)
14
15
def __str__(self):
16
return self.name
17
18
def get_absolute_url(self):
19
return reverse('single_product', kwargs={'slug': self.slug})
20
21
def get_sale(self):
22
price = int(self.price * (100 - self.discount) / 100)
23
24
return price
25
26
class ItemImage(models.Model):
27
item = models.ForeignKey(Item, on_delete=models.CASCADE, null=True, related_name='images')
28
images = models.ImageField(upload_to='photos/%Y/%m/%d/', null=True)
29
30
def __str__(self):
31
return self.item.name
32
views
JavaScript
1
8
1
class ItemDetail(DetailView):
2
model = Item
3
context_object_name = 'item'
4
template_name = 'essense/single-product-details.html'
5
6
def get_context_data(self, *, object_list=None, **kwargs):
7
context = super().get_context_data(**kwargs)
8
Advertisement
Answer
You’re pretty close. In your template tag {% for image in item.images.all %}
, image
refers to an instance of your ItemImage model. You need to reference the ImageField within that model, which you’ve named images
. So, instead of
src="{{ image.url }}"
use src="{{ image.images.url }}"
JavaScript
1
8
1
<div className="single_product_thumb clearfix">
2
<div className="product_thumbnail_slides owl-carousel">
3
{% for image in item.images.all %} <img
4
src="{{ image.images.url }}" alt="" width="360" height="539">
5
{% endfor %}
6
</div>
7
</div>```
8