如何从Django中的jQuery / Ajax POST方法中检索值

时间:2013-10-30 00:57:27

标签: jquery ajax django django-views

在使用Ajax / jQuery从客户端向服务器发布地址表单时,我在后端收到字符串响应。有人可以建议,我如何处理字符串并获取它包含的值。

下面是Ajax / jQuery脚本

<script> // Submitting address form via Ajax
    function addressform() {
        var data = $('#addressform').serialize();
        $.post('/suggestions', data);
    }
</script>

下面是后端(Django)收到的字符串响应,如何处理它以获取表单字段及其值(例如DoorNo = 423,BuildingName = Newstead)

"GET /addressform/?DoorNo=423&BuildingName=Newstead&Locality=Hatfield&Area=Herefordshire&City=&Pincode=AL10+9DQ HTTP/1.1" 200 4818

2 个答案:

答案 0 :(得分:1)

您可以使用serializeArray(),而不是使用'序列化'。我发现使用JSON更容易。

<script> // Submitting address form via Ajax
    function addressform() {
        var data = $('#addressform').serializeArray();
        $.post( '/suggestions', $.toJSON(data) );
    }
</script>

然后,在Django视图中

import json
def receiveSuggestions(request):
    data = json.loads(request.body)
    #
    # Add to database and other stuff
    #
    return HttpResponse( json.dumps({"status" : 1}) )

基本上,视图中的request.body将允许您访问发布请求中发送的任何内容。之前是raw_post_data。也许这会有所帮助? Where's my JSON data in my incoming Django request?

答案 1 :(得分:1)

根据您的问题,听起来您正在寻找处理来自django的ajax请求传递的数据。

您可以查看request.POST的帖子请求或request.GET获取请求以获取您传递的键值的字典。请参阅文档here

举一个示例,我将为/addressform/设置一个视图处理程序,我们称之为address_form

def address_form(request):
   if request.method == 'POST':
       # process the post and return appropriate response
       params = request.POST
       door_no = params['DoorNo']
       #etc for each key value
       ...
   else:
       # get on the url, handle return the appropriate response