2017-08-12 83 views
1

我想打印在我的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) 

回答

0

這裏是你應該做的: 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!!

0

您試圖訪問數據的形式編碼的數據,你傳遞一個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

嘗試更新的方法 –