javascript - 使用ajax时Django不渲染数据

标签 javascript python html django ajax

我的 template.html 中有一个简单的代码:

    <div>
        <input type="button" id="buttonId" value="Show Data">  
    </div>
    <script>
        $('#buttonId').click(function() {    
            $.ajax({
                method: 'POST',
                data: {
                    csrfmiddlewaretoken: csrf_token,
                    click: true
                },
                success: function(response){
                    console.log(response) // it is a HTML, not my data
                }
            });
        });
    </script>
    {{results}} 

在我的views.py中:

    if request.POST.get('click', False):
        ... #here I get finalresults
        return render(request, 'template.html', context={
            'results': finalresults
        })

当我按下按钮时,脚本就会运行。所以我知道按下按钮后,finalresults 有内容,但该内容没有到达 HTML 模板。

我做错了什么?

最佳答案

console.log(response) // it is a HTML, not my data

您正在获取 HTML,因为您正在渲染整个模板。

我认为您只想返回结果。在这种情况下,只需更改:

return render(request, 'template.html', context={
    'results': finalresults,
})

致:

from django.http import JsonResponse
...
...
return JsonResponse(
    {'results': finalresults},
)    

关于javascript - 使用ajax时Django不渲染数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59875703/

相关文章:

javascript - 使用 JavaScript 作为 HTML 属性值的语法

javascript - 更改 Gmail 中的字体系列

python - Python 会停止无限循环 "for"吗?

html - 获取网站名称包含python 27中的HTML代码

php - HTML 和 PHP 中的评论表单不显示

PHP - Mysql blob 到图像

javascript - ExtJS DateField 格式困惑

javascript - 按钮未触发响应

Python:根据DataFrame中的列名创建新行

python - 我如何理解 .pyc 文件内容