django 序列化器到 json - 自定义 json 输出格式

2024-04-30

我对 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(使用前将#替换为@)

django 序列化器到 json - 自定义 json 输出格式 的相关文章

随机推荐