django serializers到json - 自定义json输出格式 [英] django serializers to json - custom json output format
问题描述
data = serializers.serialize(json,Mymodel.objects.all())
除了得到以下输出之外,它的效果很好:
[{pk:8970859016715811,model:myapp mymodel,fields:{评论:3.5,标题:.....}}]
但是,我希望输出仅仅是:
[{评论 3.5,title:.....}]
或
[{id:8970859016715811,评论:3.5,标题:.....}]
我想知道有人可以指出正确的方向,如何实现这一点。 >
您可以在序列化函数中添加fields参数,如下所示:
data = serializers.serial ize('xml',SomeModel.objects.all(),fields =('name','size'))
请参阅: https://docs.djangoproject.com/en/ dev / topics / serialization /
编辑1:
您可以自定义序列化程序以仅获取您指定的字段。
从覆盖Django Object Serializer以摆脱指定的模型:
$ d code $ c
class MySerialiser(Serializer):
def end_object(self,obj):
self._current [code] from django.core.serializers.python import Serializer
class MySerialiser 'id'] = obj._get_pk_val()
self.objects.append(self._current)
#views.py
serializer = MySerialiser()
data = serializer.serialize(some_qs)
I am quite new to django and recently I have a requirement of a JSON output, for which I use the following django code:
data = serializers.serialize("json", Mymodel.objects.all())
It works great, except that I get a output of:
[{"pk": 8970859016715811, "model": "myapp.mymodel", "fields": {"reviews": "3.5", "title": .....}}]
However, I would like the output to be simply either:
[{"reviews": "3.5", "title": .....}]
or,
[{"id": "8970859016715811", "reviews": "3.5", "title": .....}]
I was wondering if someone could point me to the right direction as to how to achieve this.
You can add 'fields' parameter to the serialize-function, like this:
data = serializers.serialize('xml', SomeModel.objects.all(), fields=('name','size'))
See: https://docs.djangoproject.com/en/dev/topics/serialization/
EDIT 1:
You can customize the serializer to get only the fields you specify.
From Override Django Object Serializer to get rid of specified model:
from django.core.serializers.python import Serializer
class MySerialiser(Serializer):
def end_object( self, obj ):
self._current['id'] = obj._get_pk_val()
self.objects.append( self._current )
# views.py
serializer = MySerialiser()
data = serializer.serialize(some_qs)
这篇关于django serializers到json - 自定义json输出格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!