Отобразить данные JsonResponse в шаблоне - PullRequest
0 голосов
/ 12 мая 2019

Я хочу отправить данные JsonResponse в demo.html и отобразить в них. что не так в моем коде. Пожалуйста, помогите мне решить.

 function ComAction() {
     let xhr = new XMLHttpRequest(),
     data = new FormData();
     data.append('csrfmiddlewaretoken', getCookie('csrftoken'));
     brands.forEach(function (brand) {
        data.append('brand', brand);
    });

    xhr.open('POST', 'compare_in/', true);
    xhr.onload = function () {
        if (xhr.status === 200) {
            data = JSON.parse(xhr.responseText);
            console.log(data);
            alert('Data received successfully. Brands are ' + data.brands);
            window.location.assign({% url 'demo' %});
        } else if (xhr.status !== 200) {
            alert('Request failed.');
        }
    };
  xhr.send(data);
}

это мои URL:

urlpatterns = [
path('compare_in/', views.compare, name='compare'),
path('demo/', views.demo, name='demo'),
]

это мои взгляды:

  def compare(request):
     if request.method == 'POST':
        compare_res = request.POST.getlist('brand')
        d3 = {'brand':{'x', 'y'}, 'color':{'black', 'white'}}
        response_data = {
            'brands': d3,
            'redirect_url': 'http://127.0.0.1:8000/demo/'}
     return JsonResponse(response_data)
  return render(request, 'prodcutSearch/compare_in.html')


  def demo(request):
     return render(request, 'prodcutSearch/demo.html')
...