KeyError:'图像'

2024-10-02 14:25:56 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图保存细节时,我遇到了一个错误:KeyError:'image'。我不明白,为什么?错误视图.py. 我想一次上传多张照片

在视图.py公司名称:

@user_passes_test(lambda u: u.is_superuser)
def new_detail(request):
ImageFormSet = modelformset_factory(DetailImage,
                                    form=ImageForm, extra=10)
if request.method == 'POST':
    form = DetailForm(request.POST)
    formset = ImageFormSet(request.POST, request.FILES,
                           queryset=DetailImage.objects.none())

    if form.is_valid() and formset.is_valid():
        detail_form = form.save()
        detail_form.save()
        for form in formset.cleaned_data:
            images = form['image'] # HERE IS THE PROBLEM
            photo = DetailImage(detail=detail_form, image=images)
            photo.save()
        return redirect('/new_detail/')
else:
    form = DetailForm(request.POST)
    formset = ImageFormSet(queryset=DetailImage.objects.none())
return render(request, 'shop/new_detail.html',
{'form': form,'formset': formset})

在表单.py在

^{pr2}$

在模型.py在

...
class DetailImage(models.Model):
detail = models.ForeignKey(Detail, related_name='images',
on_delete=models.CASCADE)
image = models.ImageField(upload_to='details', null = True, blank = True)

Tags: pyimageformnewismodelsrequestsave
1条回答
网友
1楼 · 发布于 2024-10-02 14:25:56

KeyError:“image”在您的案例中意味着在表单集清理的数据中的一个表单中没有“image”键。你应该检查一下。像这样:

    for form in formset.cleaned_data:
        if 'image' in form:
            image = form['image']
            photo = DetailImage(detail=detail_form, image=image)
            photo.save()

相关问题 更多 >