我想循环查询集并访问 javascript 中的字段值。
我将查询集从视图发送到模板:
render(request, 'home.html', {'data': queryset})
Run Code Online (Sandbox Code Playgroud)
现在我想访问javascript中的一些字段。data由于尚未序列化,因此不会发生这种情况。
我别无选择,只能获取带有相关字段的查询集的序列化版本......
userData = UserDetails.objects.all().values("first_name", "email")
from django.core import serializers
data2 = serializers.serialize('json', userData)
Run Code Online (Sandbox Code Playgroud)
...但我收到以下错误:
AttributeError: 'str' object has no attribute '_meta'
Run Code Online (Sandbox Code Playgroud)
我尝试了此处给出的解决方案将查询的数据结果序列化为 json,但在 javascript 中我得到以下数据:
"[{"first_name": "pream"}, {"first_name": "micel"}, {"first_name": "Johhy"}, {"first_name": "hraper"}]"
Run Code Online (Sandbox Code Playgroud)
任何解决该问题的指示将不胜感激。
小智 5
我有一个解决方案:
在视图文件中使用相同的序列化,添加到模板上下文中并将其传递给模板。
data2 = serializers.serialize('json', userData)
context = {
'data2' : data2,
}
return HttpResponse(template.render(context, request))
Run Code Online (Sandbox Code Playgroud)
从您的模板中,从上下文中获取此 json,如下所示,并将使用“”而不是“quot;”进行序列化。
scapejs 指令将完成这项工作
var jsonData = "{{ data2|escapejs }}";
Run Code Online (Sandbox Code Playgroud)
这对我有用。
问候
| 归档时间: |
|
| 查看次数: |
1152 次 |
| 最近记录: |