javascript - 通过 Django 模板变量将 Python 对象传递给 JavaScript

标签 javascript django templates object

我已经能够传递基本类型,例如整数,如 this ,但我想传递更复杂的对象,例如我创建的一些 Django 模型。这样做的正确方法是什么?

最佳答案

我知道我来晚了一点,但我在自己的工作中偶然发现了这个问题。

这是对我有用的代码。

这是在我的views.py 文件中。

from django.shortcuts import render
from django.http import HttpResponse
from .models import Model

#This is the django module which allows the Django object to become JSON
from django.core import serializers

# Create your views here.
def posts_home(request):
    json_data = serializers.serialize("json",Model.objects.all())    
    context = {
    "json" : json_data,
    }
    return render(request, "HTMLPage.html",context)

然后,当我访问 html 文件中的数据时,它看起来像这样:

<script type = 'text/javascript'>
    var data = {{json|safe}}
    data[0]["fields"].ATTRIBUTE
</script>

data 是 JSON 对象的列表,因此我正在访问第一个对象,因此它是 data[0]。每个 JSON 对象都有三个属性:“pk”、“model”和“fields”。 “fields”属性是数据库中的字段。此信息可在此处找到:https://docs.djangoproject.com/es/1.9/topics/serialization/#serialization-formats-json

关于javascript - 通过 Django 模板变量将 Python 对象传递给 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16740546/

相关文章:

c++ - 如果在函数模板中声明,局部类是否依赖?

javascript - 如何将新数组传递给函数?

python - Django allauth 联合注册/登录 View 抛出 "global name ' get_form_class' 未定义”

python - 使用 cron 运行 python 脚本

django - 如何从 Django shell 调用 ugettext?

c++ - 警告 C4172 返回局部变量或临时变量的地址。但我返回一个输入参数值

javascript - 上传前无法显示图片

javascript - TypeScript 编译器无法在 for of 循环中找到 immutable.js Map 迭代器

javascript - 用正则表达式检测每个单词的第一个字母是否大写

c++ - 模板类型的模板特化