获取类型错误:发送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)
答
您试图访问数据的形式编码的数据,你传递一个JSON体内
def stat_ajax(request):
import json
data = json.loads(request.body)
tb_ids = data['dpsID']
for d in tb_ids:
print(d)
谢谢,但我发现了以下错误' AttributeError的:模块“django.core.serializers.json”有没有属性“loads'' – lislis
尝试更新的方法 –