我如何使用ajax调用上传文件? 我在模板中的表单
<form action="images/" enctype="multipart/form-data" method="POST" class="upload">
<table>
{{ form.as_table }}
<td><input type = "button" onclick="" value="Upload" id = "test"/</td>
</table>
</form>
我的jQuery函数:
$(document).ready(function(){
$("#test").click(function(){
var string = $("form.upload").serialize();
alert(string);
$.ajax({
url :'/test/',
type:'post',
data: {datas:string},
dataType: "json",
success: function(response) {
alert(response);
}
});
});
});
我的观点:
@csrf_exempt
def test(request):
if request.is_ajax():
form = ImageUploadForm(request.POST)
if form.is_valid():
form.save()
return HttpResponse("Saved !!!!")
这里我有文件上传的视图,但文件没有出现在django视图的表单变量中。我该怎么做才能在视图中获取文件? 表单有一个用于上传的文件字段。这是一种模型形式。
答案 0 :(得分:4)
这里缺少两件重要的作品:
form = ImageUploadForm(data=request.POST, files=request.FILES)