如何通过ajax发送django文本和图片表单

时间:2013-07-19 14:24:32

标签: django jquery

我要做的是用/ wihtout图片发送用户的文本并将其响应到页面而不再重新加载页面。

Django表格:

class PostForm(forms.ModelForm):
text = forms.CharField(max_length=128)
picture = forms.ImageField(required=False)
class Meta:
    model = Post
    fields = ['text', 'picture',]

HTML:

<form id="post_form" enctype="multipart/form-data">

   <div class="fieldWrapper">  
      {% csrf_token %}   
      {{ postForm.as_p }}
   </div>
   <INPUT id="postBtn" type="submit" name="submit" value="submit"/>
</form>

JQuery的:

$("#postBtn").click(function() {
    $.ajax({
           type: "POST",
           url: "/restaurant/feed/",
           data: $("#post_form").serialize(),
           success: function(data)
           {
                // do something
           }
    })
}

查看:

def feed(request):
 print request.FILES

我从print获得的结果是空列表。 有什么建议吗?顺便说一下,我可以在没有ajax方法的情况下上传图片。

1 个答案:

答案 0 :(得分:3)

您无法通过jQuery $.ajax()发送文件,您应该选择其他解决方案,例如http://blueimp.github.io/jQuery-File-Upload/https://github.com/Widen/fine-uploader