django render 返回数据及使用问题

后台用render返回一个{‘structures’,[{'value','2'},{'title','办公室'},....]}格式,前台接收,浏览器会报错“Uncaught SyntaxError: Unexpected token :”,大概是在context转换时html标签转义问题。代码如下:

return render(request, 'adm/supervise.html', {'structures': ret})

下面是正确的代码,主要是用了json.dumps,另外前台使用数据需要加 |safe 关键字

return render(request, 'adm/supervise.html', {'structures': json.dumps(ret)})  # 注意用json.dumps进行序列化,前端加|safe

classSuperviseView(LoginRequiredMixin, TemplateView):#template_name = 'adm/supervise.html'

defget(self, request):#{"value": "2", "title": "办公室"}

structure_list =[]

structures_dict={}

structures= Structure.objects.exclude(id__in=[1, 5]).values()for item instructures:

structure_dict={}

dict_value= str(item['id'])

dict_name= item['name']#dict_text = item.get('id') # 从queryset中取值的方法

structure_dict.update({'value': dict_value, 'title': dict_name})

structure_list.append(structure_dict)

structures_dict= {'structures': structure_list}

ret=structures_dictreturn render(request, 'adm/supervise.html', {'structures': json.dumps(ret)}) #注意用json.dumps,前端加|safe

如果后台不需要返回html,只要返回接口数据可以

ret = {'structures':list}return HttpResponse(json.dumps(ret),content_type="application/json")

Ajax跨域访问出现Uncaught SyntaxError: Unexpected token : 解决方案

原理讲的比较清楚,学习。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐