Django MultiValueDictKeyError用于上传文件

时间:2020-08-19 17:38:27

标签: django django-forms

在模型中有一个文件上传页面,用于按ID将文件上传到对象。但是,提交后显示MultiValueDictKeyError。如果有帮助,我将不胜感激。

models.py:

class Order(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, blank=True, null=True)
    items = models.ManyToManyField(OrderItem)
    img_upload = models.FileField(upload_to='payment', null=True)

forms.py:

class Upload_File(forms.Form):
    class Meta:
        model = Order
        fields = ('img_upload')

views.py:

def upload_page(request, id):
    order = get_object_or_404(Order, id=id)
    form = Upload_File(request.POST or None, request.FILES or None)
    if request.method == 'POST':
            order.img_upload = request.FILES['file']
            if form.is_valid():
                form.save()
                messages.success(request, 'Succeed')
                return redirect('user_info')
    else:
        form = Upload_File()
        context = {
            'form': form,
        }
        return render(request, 'upload.html', context)

html:

<form method="post" enctype="multipart/form-data">
{% csrf_token %}           
        <input class="form-group" type="file" name="file">
        <button class="form-group" type="submit">Submit</button>
</form>

0 个答案:

没有答案