datatables json ajax,Datatables Ajax在从文件读取JSON时起作用,但不能从变量(Django)读取JSON...

我已经被这个问题困扰了好几天了。我试图将JSON数据馈送到DataTables,但它只有在我使用静态文件作为源时才起作用(见下文)索引.html). 在

在索引.html在$(document).ready(function() {

$('#mydata').DataTable( {

"ajax": {

"url": '{% static "myapp/supplier.json" %}', //<= works

{# "url": '{{ suppliers_all }}',#} //<=does not work

"dataSrc": ""

},

"columns": [

{ "data": "name" },

{ "data": "classification" },

]

} );

} );

在视图.py在

^{pr2}$

JSON输出:[{"classification": "Base Supplier", "name": "Supplier Name1"}, {"classification": "Strategic Supplier", "name": "Supplier Name2"}]

当我使用django传递的变量{{ suppliers_all }}时,浏览器调试返回a 404 not found error。我尝试了根据网站的例子对JSON输出进行硬编码,尝试了很多不同的方法,但如果不直接从文件中获取,它将永远无法工作。在

更新:

通过使用JSON-Httpresponse和url创建新视图解决了这个问题def supjson(request):

suppliers_all = Supplier.objects.all().values('name', 'classification')

suppliers_all = json.dumps(list(suppliers_all), cls=DjangoJSONEncoder)

context = {'suppliers_all': suppliers_all,

return HttpResponse(suppliers_all, content_type='application/json')

然后将Ajax url更改为:"ajax": {

"url": '{% url 'myapp:supjson' %}',

"dataSrc": ""

},

当它工作时,我觉得这是多余的解决方案,因为我有问题直接通过变量传递数据。在

Update#2:问题是由于Django自动转义单逗号导致JSON解析无法正常工作。我做了以下更改:

增加了mark_保险箱视图.py在context = {'suppliers_all': mark_safe(suppliers_all),

}

字符串化JSON,然后在索引.html模板:$(document).ready(function() {

var json=JSON.stringify({{ suppliers_all }});

$('#mydata').DataTable( {

"data": JSON.parse(json),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值