Как показать несколько объектов изображений в шаблоне django?

models.py

class ProductVariantsImages(DateTimeModel):
     product_variant = models.ForeignKey(ProductVariants, on_delete=models.CASCADE,
                                    related_name='product_variants_images')
     variant_images = models.ImageField(upload_to='uploads/')

     def __str__(self):
         return str(self.id)

HTML

       <div class="input-group">                            
                                                
          {{variant_images}}
                                          
       </div>

 

views.py

 @login_required
 def item_approval(request, pk):
         if request.method == "GET":
             product_form = AdminProductForm(request.POST)
             item = ProductVariants.objects.get(item_num=pk)
             variant_images = ProductVariantsImages.objects.filter(product_variant=item)
             print(variant_images)


             product_form = AdminProductForm(instance=product)
             item_form = ProductVariantsForm(instance=item)
             variant_images = ProductVariantsImagesForm(instance=product_variant_images)# here I get multiple objects
             print(variant_images)



             return render(request, 'loom_admin/product_details.html',
                        {'item_form':item_form, 'product':product,
                        'product_form':product_form,
                        'variant_images':variant_images,
                        })
    

во время выполнения я получаю 'QuerySet' object has no attribute '_meta' когда я ставлю variant_images = ProductVariantsImagesForm(instance=product_variant_images[0]) ошибка исчезает. Но я получаю первый объект изображения. Что если я хочу получить несколько изображений, которые связаны с запросом фильтра в шаблоне django?

Вы можете использовать цикл for в HTML шаблоне. например >>

{% for image in variant_images %}
    <li> {{ variant_images.image }} </li>
     {% endfor %}

что-то вроде этого покажет вам список изображений

Rename this:

в views.py

variant_images = ProductVariantsImagesForm(instance=product_variant_images)

to:

variant_images_form = ProductVariantsImagesForm(instance=product_variant_images)

У вас одинаковые имена, а в итоге вы получаете не то, что нужно.

Вернуться на верх