我已经能够传递基本类型,例如整数,如 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/