将数据从模板发送到视图

时间:2019-05-13 08:10:43

标签: django django-templates django-views

我正在创建一个电话比较项目。当用户单击比较按钮时,将出现一个侧面导航,当用户完成添加产品后,他将通过单击添加按钮来动态添加产品。然后用户将点击另一个比较按钮以比较产品  产品的所有名称都将作为数组从模板转到视图。

现在在视图中,比较函数将根据数组值抓取数据,并创建字典并将字典呈现给demo.html。

但是问题是当我使用XMLHttpRequest时,将一个数组发送到视图,并且compare函数正在抓取数据,但是我不能在这里使用render函数,而是返回JSONresponse。

但是我不知道如何在模板中显示jsonresponse数据。

请帮我解决。预先感谢

将数组发送到视图的函数:

  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);
            //var demo = xhr.base64.encode(JSON.stringify(data));
            //console.log('http://127.0.0.1:8000/demo/'+demo);
            window.location.replace(data.redirect_url);
        } else if (xhr.status !== 200) {
            alert('Request failed.');
        }
    };
  xhr.send(data);
}

观看次数:

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

在网址中:

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

0 个答案:

没有答案