Django не отображает данные при использовании ajax - PullRequest
0 голосов
/ 23 января 2020

У меня есть простой код в моем шаблоне. 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
        })

Когда я пу sh Кнопка, скрипт работает. Итак, я знаю, что после нажатия кнопки в finalresults есть содержимое, но оно не попадает в шаблон HTML.

Что я делаю не так?

1 Ответ

2 голосов
/ 23 января 2020

console.log (ответ) // это HTML, а не мои данные

Вы получаете HTML, потому что вы визуализируете весь шаблон.

Я думаю, вы просто хотите вернуть results. В этом случае просто измените:

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

На:

from django.http import JsonResponse
...
...
return JsonResponse(
    {'results': finalresults},
)    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...