图片无法上传.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无法获取图片,对吧?我的代码有什么问题?我应该如何解决这个问题?
答案 0 :(得分:0)
当Django处理文件上传时,文件数据最终放在
中request.FILES
。
您没有将request.FILES
传递给您的表单,因此它永远不会看到上传的文件。您需要将其传递给表单,如下所示:
img_form = ImageForm(request.POST, request.FILES)