获取类型错误:发送Ajax post请求Django的意见

问题描述:

我想打印在我的Django视图功能我所有的检查选择的列表,但是当我送throught阿贾克斯选定的数据,我得到以下时,“NoneType”对象不是可迭代误差在我的控制台:获取类型错误:发送Ajax post请求Django的意见

Traceback (most recent call last): 
    File "C:\Users\lislis\DJANGO~2\DJANGO~1.2\lib\site-packages\django\core\handlers\exception.py", line 41, in inner 
    response = get_response(request) 
    File "C:\Users\lislis\DJANGO~2\DJANGO~1.2\lib\site-packages\django\core\handlers\base.py", line 187, in _get_response 
    response = self.process_exception_by_middleware(e, request) 
    File "C:\Users\lislis\DJANGO~2\DJANGO~1.2\lib\site-packages\django\core\handlers\base.py", line 185, in _get_response 
    response = wrapped_callback(request, *callback_args, **callback_kwargs) 
    File "C:\Users\lislis\Django-VEnvs-Projects\django 1.11.2\src\rapport_sante\papa\views.py", line 78, in stat_ajax 
    for d in tb_ids: 
TypeError: 'NoneType' object is not iterable 
[12/Aug/2017 11:53:07] "POST /sante/stat-ajax/ HTTP/1.1" 500 19573 

这是我的AJAX发布请求的一部分:

​​

这是我的视图函数,其中i想显示包含在的dpsID的所有数据我AJAX POST请求:

def stat_ajax(request): 
    tb_ids=request.POST.get('dpsID') 
    for d in tb_ids: 
     print(d) 

这里是你应该做的: 1)首先,befor发送您的AJAX要求,应该将data数组转换成字符串:

$.ajax({ 
     url: "{% url 'papa:stat-ajax' %}", 
     type:"post", 
     data: {dpsID:data.toString(),csrfmiddlewaretoken: '{{ csrf_token }}'}, 

2)在你看来funtion,你应该删除逗号,从POST['dpsID'] varibales因为当你调用toString()方法,逗号仍然存在,或者你不想提取ID其中值comma.So你可以这样做:

def stat_ajax(request): 
    #We create a list which will contain our value without a comma 
    tb=[] 

    #Here you remove commas from you POST['dpsID'] variable 
    for i in request.POST['dpsID']: 
     #if a comma is found,we dont do anything 
     if i==",": 
      pass 

     #But if it's a number,we append it in our list 
     else: 
      tb.append(i) 
    for d in tb: 
     print(d) 

See!!

您试图访问数据的形式编码的数据,你传递一个JSON体内

def stat_ajax(request): 
    import json 
    data = json.loads(request.body) 
    tb_ids = data['dpsID'] 
    for d in tb_ids: 
     print(d) 
+0

谢谢,但我发现了以下错误' AttributeError的:模块“django.core.serializers.json”有没有属性“loads'' – lislis

+0

尝试更新的方法 –