【问题标题】:when i want to extract information from query results in django it return none当我想从 django 中的查询结果中提取信息时,它返回 none
【发布时间】: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}) 和 ajax console.log (data['list']);

标签: javascript ajax django python-3.x


【解决方案1】:

后端站点没有任何问题,因为我提到每件事都打印正常但没有返回任何内容,问题出在我们提到两次 {% csrf_token %"}

的 html 文件中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 2011-11-08
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多