上传多个文件时将request.POST与请求本身传递到Django表单

时间:2018-07-11 14:54:21

标签: python django forms post request

我正在使用以下表格上传多张图片。

class AlbumForm(forms.Form):
album_name = forms.CharField(label='Titel', max_length=100, required=True)
album_description = forms.CharField(label='Beschrijving', widget=forms.Textarea)
images = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}))

在接收视图中,我注意到当我将request.POST传递到表单时,无法访问表单中的图像。另一方面,当我将请求本身传递给表单时,我可以访问文件,但不能使用form.isValid()方法。

只有多张图片文件不可用,其他两个值照常可用。

    def post(self, request, *args, **kwargs):
    images_form = AlbumForm(request)
    ...
    if images_form.is_valid():
        images = images_form.data.FILES.getlist('images')
        Imgur().create_album(title=images_form.album_name, description=images_form.album_description, images=images)
    ...

以下是表单的html代码

<form method="POST" enctype="multipart/form-data">
    {% csrf_token %}
    {{images_form|crispy}}
    <input class="" type="submit" value="save">
</form>

造成这种差异的原因是什么,或者我做错了什么?

Edit:仅使用请求时,名称和描述不可用,所以我想正确的方法是使用request.POST,但是访问文件的正确方法是什么

0 个答案:

没有答案