使用Django中的FileField在Admin中显示图像上传

时间:2016-12-07 09:31:31

标签: html django

我需要在我的html中显示在管理页面(使用FileField)上传的多个图片。

我目前正在使用:

Python 3.6.0b4

Django 1.10.3

我目前可以显示模型是否只有一个图像但是当我尝试放置多个图像时,我不知道如何显示它。

这是我的代码:

models.py

class Product(models.Model):
    name = models.CharField(max_length=140)
    created_by = models.ForeignKey(User,null=True)

    def __str__(self):
        return self.name

class ProductImage(models.Model):
    name= models.ForeignKey(Product)
    image = models.FileField(upload_to='media/',null=True,blank=True)

admin.py

class ProductImageInline(admin.TabularInline):
    model = ProductImage

class ProductModelAdmin(admin.ModelAdmin):
    exclude = ('created_by',)

    inlines = [ProductImageInline]

    def save_model(self, request, obj, form, change):
        if not change:
            obj.created_by = request.user
        obj.save()


admin.site.register(Product,ProductModelAdmin)

如果我添加

image = models.FileField(upload_to='media/',null=True,blank=True)

在我的 model.py 中,我可以在html中显示它:

<img width=200 src="{{product.image.url}}" /></a>

如何在html中显示多个图像? 我对Django很新,但有网络开发经验。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您有many-to-one关系,则可以使用<modelname>_set属性获取与对象记录相关的全部内容。

因此,尝试遍历productimage_set中的所有图像:

{% for image in product.productimage_set.all %}
    <img src="{{image.image.url}}">
{% endfor %}