Django在HTML中显示一个项目的多个图片
我可以将图片添加到我的管理页面,但我想知道如何在我的主html页面上显示它们。下面的代码只显示了我上传到管理页面的第一个图像,而忽略了其余的图像 models.pyDjango在HTML中显示一个项目的多个图片,django,Django,我可以将图片添加到我的管理页面,但我想知道如何在我的主html页面上显示它们。下面的代码只显示了我上传到管理页面的第一个图像,而忽略了其余的图像 models.py class Product(models.Model): PN = models.CharField(max_length=100, image = models.FileField(blank=True) def __str__(self): return self.name class
class Product(models.Model):
PN = models.CharField(max_length=100,
image = models.FileField(blank=True)
def __str__(self):
return self.name
class PostImage(models.Model):
post = models.ForeignKey(Product, default=None, on_delete=models.CASCADE)
images = models.FileField(upload_to = 'products/')
def __str__(self):
return self.post.name
views.py
from .models import Product, PostImage
def product_detail(request, PN):
product = get_object_or_404(Product, PN=PN, available=True)
photos = PostImage.objects.filter(product=product)
return render(request, 'product/product_detail.html', {'product':product, 'photos':photos})
product_detail.html
{% block content %}
{% for obj in object %}
<div id="item">
{% for image in obj.postimage_set.all %}
<img src="{{ MEDIA_URL }} {{ obj.image.url }}" />
{% endfor %}
</div>
{% endfor %}
{% endblock %}
{%block content%}
{对象%中obj的%s}
{obj.postimage_set.all%中图像的百分比}
{%endfor%}
{%endfor%}
{%endblock%}
对象使用图像
作为迭代器,因此您可以使用:
{% block content %}
{% for obj in object %}
<div id="item">
{% for image in obj.postimage_set.all %}
<img src="{{ image.images.url }}" />
{% endfor %}
</div>
{% endfor %}
{% endblock %}
{%block content%}
{对象%中obj的%s}
{obj.postimage_set.all%中图像的百分比}
image.images.url}}”/>
{%endfor%}
{%endfor%}
{%endblock%}
@WillemVanOnsem我尝试了五次,但只显示了产品中的图片,没有显示PostImage中的任何内容。我希望能够查看PostImage中的图片。我向项目中添加了五张不同的照片,我希望能够查看所有图片。我缺少了什么?我也尝试了,它显示了五个空块(没有图像)@您是否使用了.images
(使用s
,尽管这是一种奇怪的命名约定)作为字段?它将什么指定为src=“”
?@user8607309:请注意,不仅删除了{MEDIA\u URL}
,还使用{image.images.URL}
作为变量,而不是{obj.image.URL}
。