ajax查询后显示不出来,无法使用ajax显示查询集

我在使用ajax时无法显示queryset

这是我的views.py:

if request.user.is_authenticated():

productid = request.GET.get('productId')

print productid

if request.is_ajax():

try:

queryset= StoreProduct.objects.get_size(productid)

except:

queryset= None

data = {

"queryset" : queryset

}

return JsonResponse(data)

这是我的ajax脚本:

function getStoreView(event, productId) {

event.preventDefault();

var data = {

productId : productId

}

$.ajax({

type: "GET",

url: "{% url 'storeView' user=store.user %}",

data: data,

success: function(data) {

console.log(data.queryset)

},

error: function(response, error) {

alert(error);

}

});

};

我该怎么做才能解决上面的问题?

提前致谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Django中使用Ajax获取查询与filter返回值,可以使用Django提供的JsonResponse来实现。JsonResponse可以将Python对象转化为JSON格式,然后通过Ajax将JSON数据传递给前端并显示。 以下是一个简单的示例,假设我们有一个模型类叫做`Book`,它有一个字段`title`。 首先,我们需要编写一个视图函数来处理Ajax请求,并将查询或filter返回值转化为JSON格式: ```python from django.http import JsonResponse from .models import Book def get_books(request): if request.is_ajax(): query = request.GET.get('q') if query: books = Book.objects.filter(title__icontains=query) else: books = Book.objects.all() data = [{'title': book.title} for book in books] return JsonResponse({'data': data}) ``` 这个视图函数首先判断是否是Ajax请求,然后根据传递的参数`q`来判断是否需要进行filter操作。最后将查询或filter返回值转化为JSON格式,返回给前端。 接下来,在前端页面中使用jQuery的Ajax方法来获取数据并显示: ```javascript $(document).ready(function() { $('#search-form').submit(function(event) { event.preventDefault(); var query = $('#search-input').val(); $.ajax({ url: '/get_books/', data: { 'q': query }, dataType: 'json', success: function(data) { var books = data['data']; $('#book-list').empty(); for (var i=0; i<books.length; i++) { $('#book-list').append('<li>' + books[i]['title'] + '</li>'); } } }); }); }); ``` 这段代码监听了一个表单的提交事件,并获取输入框中的值。然后使用Ajax方法向`/get_books/`这个url发送请求,并将查询参数`q`传递给后端。最后在成功回调函数中将返回的JSON数据解析并显示在页面上。 注意,在页面中需要定义一个`<ul>`标签用来显示查询结果,如: ```html <form id="search-form"> <input type="text" id="search-input" /> <button type="submit">Search</button> </form> <ul id="book-list"></ul> ``` 这样就完成了在Django中使用Ajax获取查询与filter返回值,并将结果在前端显示的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值