javascript - Django:为 javascript 序列化 ValuesQuerySet

标签 javascript django

我想循环查询集并访问 JavaScript 中的字段值。

我将查询集从 View 发送到模板:

render(request, 'home.html', {'data': queryset})

现在我想访问 javascript 中的一些字段。 data 不会发生这种情况,因为它尚未序列化。

我别无选择,只能获取包含相关字段的查询集的序列化版本...

userData = UserDetails.objects.all().values("first_name", "email")
from django.core import serializers
data2 = serializers.serialize('json', userData)

...但我收到以下错误:

AttributeError: 'str' object has no attribute '_meta'

我尝试了此处给出的解决方案 Serializing data results from query with select_related into json但在 javascript 中我得到以下数据:

"[{"first_name": "pream"}, {"first_name": "micel"}, {"first_name": "Johhy"}, {"first_name": "hraper"}]"

任何解决该问题的指示将不胜感激。

最佳答案

我有一个解决方案:

在 View 文件中使用相同的序列化,添加到模板上下文中并将其传递给模板。

data2 = serializers.serialize('json', userData)
context = { 
        'data2' : data2,
}
return HttpResponse(template.render(context, request))

从您的模板中,从上下文中获取此 json,如下所示,并将使用“”而不是“quot;”进行序列化。

scapejs 指令将完成这项工作

var jsonData = "{{ data2|escapejs }}";

这对我有用。

问候

关于javascript - Django:为 javascript 序列化 ValuesQuerySet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23592347/

相关文章:

javascript - Twitter bootstrap typeahead 无法添加到动态创建的元素

javascript - Angular 6 : error TS2339: Property 'value' does not exist on type 'HTMLElement'

django - 预取相关之后选择相关

python - Django 1.11 上下文处理器错误 : TypeError: context must be a dict rather than RequestContext'

django - 在 Django 中执行模型创建代码

javascript - 如何在不切换到新标签的情况下在 JavaScript 中打开新标签?

javascript - 图像上的圆 Angular 边缘

javascript - 如何简单地编写Ajax脚本(删除重复代码)?

python - 从 Django 中的 API 填充数据库

python - django View 中的原始 SQL 显示错误