我正在尝试使用Django将多个图像上传到我的数据库。我希望每个文件作为主要产品的外键单独存储。所以基本上我的意思是会有产品,然后每个产品将有多个外键是图像。 Django根本没有将图像存储到数据库中。这是我的代码:
class product(models.Model):
title = models.CharField('', max_length=100, db_index=True)
price = models.CharField('', max_length=100, db_index=True)
description = models.CharField('', max_length=100, db_index=True)
class productimage(models.Model):
product = models.ForeignKey(product, on_delete=models.CASCADE)
product_images = models.FileField(blank=True)
if request.method == "POST":
title = request.POST.get("title")
price = request.POST.get("price")
description = request.POST.get("description")
products = product(title=title,description=description,price=price)
products.save()
for image in request.FILES.getlist("images"):
product_images = image
products.productimage_set.create(product_images = product_images)
return render(request,'selling/addproduct.html')
所以基本上我希望每个产品都有一个存储为主要产品的外键的图像列表。
我觉得你有点困惑 - 使用_set
后缀是通过反向遍历得到一个外键列表。要创建它们,您可以一次创建一个productimage
,然后使用_set
获取它们。
例:
...
for image in request.FILES.getlist("images"):
productimage.objects.create(product=product, product_images=image)
...
然后通过product
实例获取图像:
product.product_images_set.all()