王海庆的云笔记

django 将queryset转换(model的实例序列化)一个字典(json)方法


第一种方法:使用django自带方法serializers

from django.core import serializers

obj = SomeModel.objects.first()

serialized_obj = serializers.serialize('json', [ obj, ])

serialized_obj = serializers.serialize('python', [ obj, ])


第二种方法:使用model_to_dict

from django.forms.models import model_to_dict
from django.http import JsonResponse

obj = SomeModel.objects.first()
model_to_dict(obj )


第三种方法:利用json.dumps()

from django.forms import model_to_dict
from django.core.serializers.json import DjangoJSONEncoder
from django.db.models import Model

class ExtendedEncoder(DjangoJSONEncoder):

    def default(self, o):

        if isinstance(o, Model):
            return model_to_dict(o)

        return super().default(o) 
        
json.dumps(data, cls=ExtendedEncoder)


参考

http://www.chenxm.cc/article/867.html


文章最后更新时间: 2021-12-15 14:17:06