我正在使用 django + 活塞,到目前为止,我创建了一些 url,它们可以很好地以 JSON 格式返回我的 django 模型。我什至不必指定发射器,JSON 序列化是自动完成的。
现在我需要返回一个不扩展 Django Model 类的 JSON 序列化对象。如果我返回它的值,活塞会返回 __str __ 值,即使我添加 JSON 发射器也不会发生任何事情。我不想在 __ str __ 方法中添加 JSON 序列化,因为它不正确。什么是正确的方法?
我正在使用 django + 活塞,到目前为止,我创建了一些 url,它们可以很好地以 JSON 格式返回我的 django 模型。我什至不必指定发射器,JSON 序列化是自动完成的。
现在我需要返回一个不扩展 Django Model 类的 JSON 序列化对象。如果我返回它的值,活塞会返回 __str __ 值,即使我添加 JSON 发射器也不会发生任何事情。我不想在 __ str __ 方法中添加 JSON 序列化,因为它不正确。什么是正确的方法?
您可以使用 python 的json包来执行此操作。
片段:
>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
如果您希望在 django 视图的上下文中创建它,您需要确保发送回正确的内容类型。那是,
from django.http import HttpResponse
return HttpResponse(your_json_string, mimetype='application/json')
请注意,这不一定适用于所有类型。通常构造一个dict
包含您想要返回的内容的对象,然后对其进行序列化是一个好主意。