使用 Django 验证多个上传图像
Validate multiple upload images with django
我正在尝试使用带有 Django 的表单上传多张图片。我设法允许用户上传它们,但是当我验证表单时,我总是收到我需要上传图片的消息,但我可以看到 request.FILES
包含所有上传的图片。
这是我的表格:
class ProductForm(ModelForm):
class Meta:
model = models.Product
fields = ['name', 'style', 'description', 'buy_url', 'price', 'currency', 'images']
error_messages = {
NON_FIELD_ERRORS: {
'buy_url': "%(model_name)s's %(field_labels)s are not unique.",
}
}
widgets = {
'description': Textarea(attrs={'cols': 80, 'rows': 10}),
'images': FileInput(attrs={'multiple': ''})
}
这里是视图:
class CreateProductView(AuthenticatedUserView):
template_name = 'myapp/product.html'
def get_if_authenticated(self, request, user):
form = ProductForm()
return render(request, self.template_name, {"form": form})
def post_if_authenticated(self, request, user):
form = ProductForm(request.POST)
if form.is_valid():
product = form.save(commit=False)
# Here do something with the images
product.user = user
product.save()
return HttpResponseRedirect(reverse('myapp:actions'))
return render(request, self.template_name, {"form": form})
我尝试添加方法 clean_images
但从未调用过。
如何才能成功验证 post 请求中的文件?
谢谢!
我撤销我的回答。我不想再支持这个网站了。
我正在尝试使用带有 Django 的表单上传多张图片。我设法允许用户上传它们,但是当我验证表单时,我总是收到我需要上传图片的消息,但我可以看到 request.FILES
包含所有上传的图片。
这是我的表格:
class ProductForm(ModelForm):
class Meta:
model = models.Product
fields = ['name', 'style', 'description', 'buy_url', 'price', 'currency', 'images']
error_messages = {
NON_FIELD_ERRORS: {
'buy_url': "%(model_name)s's %(field_labels)s are not unique.",
}
}
widgets = {
'description': Textarea(attrs={'cols': 80, 'rows': 10}),
'images': FileInput(attrs={'multiple': ''})
}
这里是视图:
class CreateProductView(AuthenticatedUserView):
template_name = 'myapp/product.html'
def get_if_authenticated(self, request, user):
form = ProductForm()
return render(request, self.template_name, {"form": form})
def post_if_authenticated(self, request, user):
form = ProductForm(request.POST)
if form.is_valid():
product = form.save(commit=False)
# Here do something with the images
product.user = user
product.save()
return HttpResponseRedirect(reverse('myapp:actions'))
return render(request, self.template_name, {"form": form})
我尝试添加方法 clean_images
但从未调用过。
如何才能成功验证 post 请求中的文件?
谢谢!
我撤销我的回答。我不想再支持这个网站了。