我在Django中建立了一个简单的电子商务网站,允许用户上传产品的多个图片。需要将这些多个图像保存在存储桶S3中。
此处是models.py:
class Product(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
description = models.CharField(max_length=200, null=True)
posted_date = models.DateTimeField(default=datetime.now, blank=True)
size_chart= models.FileField(upload_to='images/', null=True, verbose_name="")
class Product_Pictures(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
file = models.FileField(upload_to='images/', null=True, verbose_name="", default="null")
这里views.py:
def add_product(request):
try:
files = request.FILES.getlist('pro-image')
size_chart = request.FILES.get('size_chart', False)
product = Product.objects.create(user = user, title = request.POST.get('title'), description = request.POST.get('description'), size_chart= size_chart)
except Product.DoesNotExist:
raise Http500()
product = Product.objects.latest('id')
for photo in files:
add_product_pictures(dress, photo)
return redirect('/ads')
def add_product_pictures(dress, photo):
photo = 'images/'+str(photo)
Dress_Pictures.objects.create(dress = dress, file = photo)
因此,当我尝试添加具有多个图像的新产品时,只有一个图像上载到S3存储桶中,其他图像都没有上载。尽管条目保存在数据库中,并且系统不会引发任何错误。我尝试了许多方法来管理它,但没有任何效果。我不明白为什么所有文件都没有上传到存储桶。一定建议我一些出路。
答案 0 :(得分:0)
这行代码是add_product(dress, files)
还是add_product(dress, photos)
吗?