我正试图想出一种将一些Django模型对象序列化为JSON格式的方法,如:
j = Job.objects.get(pk=1)
##############################################
#a way to get the JSON for that j variable???
##############################################
我不想要:
from django.core import serializers
serializers.serialize('json', Job.objects.get(pk=1),ensure_ascii=False)
因为它返回JSON数组,而不是单个对象表示。
有什么想法吗?
我正在考虑的一种方法是:找到一种方法来获取对象的哈希(属性,值),然后使用simplejson来获取它的JSON表示,但是我不知道如何得到它散列。
答案 0 :(得分:27)
如何只是按摩你从serializers.serialize回来的内容?从结果的正面和背面剪掉方括号并不难。
job = Job.objects.get(pk=1)
array_result = serializers.serialize('json', [job], ensure_ascii=False)
just_object_result = array_result[1:-1]
不是一个奇特的答案,但它只会给你json表示法中的对象。
答案 1 :(得分:7)
我建议使用Django' dict
。如果我没有弄错,from django.forms.models import model_to_dict
# assuming obj is your model instance
dict_obj = model_to_dict( obj )
也会依赖它,但它仅适用于json.dumps
,不适用于单个模型实例。这就是如何从单个模型中获取模型字段的import json
json.dumps(dict_obj)
实例:
$scope.data = a
您现在只需要一个 let tripDetailController = self.storyboard!.instantiateViewControllerWithIdentifier("tripDetailController") as! TripDetailController
tripDetailController.trip = trip
self.navigationController?.pushViewController(tripDetailController, animated: true)
电话:
takeOrdered
答案 2 :(得分:1)
以 python
格式使用Django序列化程序
from django.core import serializers
j = Job.objects.get(pk=1)
response = serializers.serialize('python', [j], ensure_ascii=False)
在序列化时使用 json
格式并 加载 字符串响应
import json
from django.core import serializers
j = Job.objects.get(pk=1)
json_str_response = serializers.serialize('json', [j], ensure_ascii=False)
response = json.loads(json_str_response)
使用Django REST Framework's Serializer class 定义一个序列化器类并将实例序列化为
from rest_framework import serializers
class JobSerializer(serializers.ModelSerializer):
class Meta:
model = Job
fields = '__all__'
j = Job.objects.get(pk=1)
response = JobSerializer(instance=j).data