我对 django 很陌生,最近我需要 JSON 输出,为此我使用以下 django 代码:
data = serializers.serialize("json", Mymodel.objects.all())
它工作得很好,除了我得到的输出:
[{"pk": 8970859016715811, "model": "myapp.mymodel", "fields": {"reviews": "3.5", "title": .....}}]
但是,我希望输出只是:
[{"reviews": "3.5", "title": .....}]
or,
[{"id": "8970859016715811", "reviews": "3.5", "title": .....}]
我想知道是否有人可以为我指明如何实现这一目标的正确方向。
您可以将“fields”参数添加到序列化函数中,如下所示:
data = serializers.serialize('xml', SomeModel.objects.all(), fields=('name','size'))
See: https://docs.djangoproject.com/en/dev/topics/serialization/ https://docs.djangoproject.com/en/dev/topics/serialization/
EDIT 1:
您可以自定义序列化器以仅获取您指定的字段。
From 覆盖 Django 对象序列化器以删除指定的模型 https://stackoverflow.com/questions/5453237/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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)