图片无法上传

时间:2018-03-27 12:48:29

标签: python django

图片无法上传.form.is_valid()总是返回Flase.I在html中写道

<main>
    <form action="/app/img/" method="POST" enctype="multipart/form-data" role="form">
        {% csrf_token %}
        <h3>Upload Image!!</h3>

        <div class="input-group">
            <label class="input-group-btn">
                <span class="btn-lg">
                    Select image
                    <input id="file1" type="file" name="image" accept="image/*">
                </span>
            </label>
        </div>

        <div class="col-xs-offset-2">
            <input id="send" type="submit" value="Send" class="form-control">
        </div>
    </form>
</main>
在views.py中

@require_POST
def img(request):
    img_form = ImageForm(request.POST or None)
    print(img_form.is_valid())
    if request.method == "POST" and img_form.is_valid():
        image = request.POST.get("image", "")

在forms.py

class ImageForm(forms.ModelForm):
    image = forms.ImageField()
    class Meta:
        model = Image
        fields = ('image',)

我实在无法理解为什么我无法发送images.form.is_valid()返回Flase意味着Form无法获取图片,对吧?我的代码有什么问题?我应该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

来自documentation

  

当Django处理文件上传时,文件数据最终放在request.FILES

您没有将request.FILES传递给您的表单,因此它永远不会看到上传的文件。您需要将其传递给表单,如下所示:

img_form = ImageForm(request.POST, request.FILES)