Как показать несколько объектов изображений в шаблоне 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)
У вас одинаковые имена, а в итоге вы получаете не то, что нужно.