我必须在窗口对象中存储一些数据,以便在前端渲染中使用它。我有一个模型:
from django.db import models
from tools.various.db import Base
from tools.files.fields import CustomImgField, IMAGES_DIRECTORY_ORIGINAL
from django.conf import settings
class myModel(Base):
myName = models.CharField(max_length=100, verbose_name='myName')
mySurname = models.CharField(max_length=100, verbose_name='mySurname')
我有一个观点:
from django.http import Http404
from django.views.generic import TemplateView
from django.http import JsonResponse
from json import dumps
from front.models import Language
from front.models import myModel
class BaseView(TemplateView):
def get_context_data(self, **kwargs):
context = super(BaseView, self).get_context_data(**kwargs)
context['myData'] = myModel.objects.value()
return context
我想检索myData
作为JSON对象并将其存储在窗口
对象中:
window.app = {
data: {},
settings: {
staticUrl: '{{ STATIC_URL }}',
urls: {},
storedData: {{ myData|jsonify|safe }}
}
};
但我得到了这样的回答:
[{'myName': u'foo', 'mySurname': u'bar', u'id': 1L, 'order': 0L}] is not JSON serializable
有人知道我做错了什么吗?
谢啦!
编辑:
我只是按照André Laszlo的建议尝试了< code>return list(context):它返回
Exception Value: list indices must be integers, not str
但是如果我使用:
context['myData'] = list(myModel.objects.values())
return context
似乎很管用。我将阅读有关“list()”的文档。
我认为问题是你的列表实际上不是一个列表,它是一个查询集,只是打印出来看起来像一个列表。
你有没有试过:
context['myData'] = list(myModel.objects.values())
return context
我认为它应该返回一个包含字典的列表,应该是JSON序列化的。如果问题不起作用,请用结果更新您的问题。
您正在返回一个python 字典
,您需要使用< code>json.dumps()将其序列化为JSON
您已经在导入json
但没有使用它。
from django.http import Http404
from django.views.generic import TemplateView
from django.http import JsonResponse
from json import dumps
from front.models import Language
from front.models import myModel
class BaseView(TemplateView):
def get_context_data(self, **kwargs):
context = super(BaseView, self).get_context_data(**kwargs)
context['myData'] = myModel.objects.value()
return dumps(context)
此外,您可能希望阅读< code>ujson -比内置的json库更快。
最好,如果您使用的是Django 1.7,您可以执行以下操作:
from django.http import Http404
from django.views.generic import TemplateView
from django.http import JsonResponse
from json import dumps
from front.models import Language
from front.models import myModel
from django.http import JsonResponse
class BaseView(TemplateView):
def get_context_data(self, **kwargs):
context = super(BaseView, self).get_context_data(**kwargs)
context['myData'] = myModel.objects.value()
return JsonResponse(context)
问题内容: 我试图让Ajax 将数据发送到视图,以便在单击with类时可以在那里处理数据。 问题是,当我单击所说的div并在视图文件中打印时,我得到了一个包含的对象。空!我似乎无法弄清楚为什么我的POST请求没有通过发送我的数据。 这是我的HTML … 这是我的AJAX / jQuery … 这是我的看法 这是我的网址路线… 我尝试过的东西 1)我用代替,我能够使用 1)尝试使用和获得以下内容…
问题内容: 我正在使用Django为项目创建基于Web的应用程序,并且遇到了将数组从Django视图返回到模板的问题。 JavaScript(JQuery)脚本将使用该数组在页面上显示的图像上绘制框。因此,该数组将具有要绘制的框的坐标。 这是Django视图中的代码,用于获取所需数据并将其序列化为JSON: 作为调试的一种方式,在模板的HTML部分中使用会将其作为输出(很抱歉,长行表示): 我认为
我有一个网络服务,可以按名字搜索一些视频。它会把视频的名字和图像传给我。我应该怎么说哪个图像是哪个视频的?我应该怎么说才能播放 包裹通讯。视频 导入java。util。列表 导入android。应用程序。活动 导入android。操作系统。异步任务; 导入android。操作系统。捆 导入android。看法看法 导入android。看法看法一位听众; 导入android.widget.按钮; 导
问题内容: Django视图指向一个函数,如果您只想更改一些功能,则可能会出现问题。是的,函数中可以有数百万个关键字参数,如果有语句,甚至可以更多,但是我在想更多的面向对象方法。 例如,我有一个显示用户的页面。该页面与显示组的页面非常相似,但仍与仅使用另一个数据模型不太相似。小组也有成员等… 一种方法是将视图指向类方法,然后扩展该类。有没有人尝试过这种方法或有其他想法? 问题答案: 我已经创建并使
问题内容: 我在从Java servlet内的JavaScript检索以JSON形式发送的数据时遇到查询。以下是我在做什么… 这是JavaScript内向Servlet发出请求的代码的一部分 在发出此请求时,我尝试检索从Servlet中的JavaScript发送的参数,但这样做时,我首先对如何从请求中检索数据感到困惑 我在servlet中使用了以下内容: 注意: 我的Servlet中的内容类型设置
问题内容: 如何将JSON数据从浏览器中的Javascript发送到服务器,并由PHP在其中进行解析? 问题答案: 我在这里获得了很多信息,所以我想发布我发现的解决方案。 问题: 从浏览器上的Javascript获取JSON数据到服务器,然后让PHP成功解析它。 环境: Windows上的浏览器(Firefox)中的Javascript。LAMP服务器作为远程服务器:Ubuntu上的PHP 5.3