如何在Django中使用 AJAX 返回queryset?

yyyllmsg  于 2022-11-18  发布在  Go
关注(0)|答案(1)|浏览(140)

下面是我的视图。py

def get_group_ajax(request):
    if request.method == "GET":
        g_id = request.GET['group_id']
        productlist = models.Stocksupporter.objects.filter(pmaingroups = g_id).values('productname').exclude(numberqut=0) *//This is my queryset*

这是我的** AJAX 和使用的Django循环模板**:

$("#allgrp").change(function () {
    const gId = $('#allgrp').val();

    $.ajax({
      type: "GET",
      url: '{% url "webapp:get_group_ajax" %}',
      data: {
        'group_id': gId,
      },
      success: function (data) {
          html_data = 
          `
          {% for pr in productlist %}
          <div class="cardc" id="card_id">
            <p>{{ pr.productname }}</p>
          </div>
          {% endfor %} 
           `;
         
          $("#card_id2").html(html_data);
      }
    });
  });

现在什么是**问题:我想返回productlist(for循环)在 AJAX 成功的基础上选择的值(意思是组ID),我用了响应方法,但仍然不能返回任何东西。有什么办法做到这一点?

bttbmeg0

bttbmeg01#

views.py :

from django.http import JsonResponse

if 'group_id' in request.GET:
    productlist = Stocksupporter.objects.filter(pmaingroups = g_id).exclude(numberqut=0).values('productname')
    return JsonResponse(list(productlist ),safe=False)

html中的Success函数:

function(productListData){
   for(i in productListData){
     let element = ` <div class="cardc">
        <p>${productListData[i].productname}</p>
      </div>`
      $("#card_id2").append(element);
    }
 }

相关问题