【发布时间】:2019-06-10 23:29:08
【问题描述】:
我想得到结果列,它在视图中打印得很好,但在 ajax 中什么也不返回,我不知道为什么?,有一个相同类型的函数可以正常工作,但它没有。
def requiredfield(request):
total_ms=['pratap']
# #print(T)
name = ['jay']
print(name)
print(total_ms)
if request.method == "POST":
datafiles = request.POST.get('datafiles')
print(datafiles)
query = 'select id, Must_Have from analytics_fileuploadrequiredata where DataFiles_Name = ' + '"' + datafiles + '"'
#query = 'select id, Functions from analytics_analyticsreport'
print(query)
result = FileUploadRequireData.objects.raw(query)
for i in range(len(result)):
ms = result[i].Must_Have
if ms not in total_ms:
total_ms.append(ms)
print(total_ms)
return JsonResponse(total_ms, safe=False)
阿贾克斯
$.ajax({
url: "/analytics/requiredfield/",
type: "POST",
data: {
datafiles: $("input[name='datafilesname']:checked").val(),
csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val()
},
success : function(data) {
console.log(data);
alert("OK")
}
})
查询执行时在cmd中显示错误:第一行显示'abc'已成功附加到total_ms中。
['pratap', 'abc']
[17/Jan/2019 02:23:51] "POST /analytics/requiredfield/ HTTP/1.1" 200 15
Traceback (most recent call last):
File "C:\Users\asn\AppData\Local\Programs\Python\Python37-32\lib\wsgiref\handlers.py", line 138, in run
self.finish_response()
File "C:\Users\asn\AppData\Local\Programs\Python\Python37-32\lib\wsgiref\handlers.py", line 180, in finish_response
self.write(data)
File "C:\Users\asn\AppData\Local\Programs\Python\Python37-32\lib\wsgiref\handlers.py", line 274, in write
self.send_headers()
File "C:\Users\asn\AppData\Local\Programs\Python\Python37-32\lib\wsgiref\handlers.py", line 332, in send_headers
self.send_preamble()
File "C:\Users\asn\AppData\Local\Programs\Python\Python37-32\lib\wsgiref\handlers.py", line 255, in send_preamble
('Date: %s\r\n' % format_date_time(time.time())).encode('iso-8859-1')
Not Found: /analytics/assets/img/admin.png
File "C:\Users\asn\AppData\Local\Programs\Python\Python37-32\lib\wsgiref\handlers.py", line 453, in _write
result = self.stdout.write(data)
File "C:\Users\asn\AppData\Local\Programs\Python\Python37-32\lib\socketserver.py", line 796, in write
self._sock.sendall(b)
ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine
[17/Jan/2019 02:23:51] "POST /analytics/requiredfield/ HTTP/1.1" 500 59
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 52152)
[17/Jan/2019 02:23:51] "GET /analytics/assets/img/admin.png HTTP/1.1" 404 4604
【问题讨论】:
-
我猜这是您查询中的双引号,因为大多数数据库不使用它们(至少不是在您使用它们的上下文中)。另外,您为什么不使用 django 的 ORM,为什么要通过连接字符串来构建查询?这只是要求 sql 注入。
-
我尝试用单引号,同样的事情发生
-
你是如何在 ajax 中获取列表的?
-
我从 ajax 发布的内容,问题出在查询结果中。如果我不碰也没关系,警报正在工作
-
试试这个:
return JsonResponse ({'list': total_ms})和 ajaxconsole.log (data['list']);
标签: javascript ajax django python-3.x