gpt4 book ai didi

django - 覆盖 Django 对象序列化程序以摆脱指定的模型

转载 作者:行者123 更新时间:2023-12-03 18:18:19 24 4
gpt4 key购买 nike

我需要将 Django 查询集对象转换为 Json 字符串。内置的 Django 序列化库效果很好。尽管它指定了从创建它的位置的模型的名称。既然我不需要这个,我该如何摆脱它?我还需要覆盖什么才能使用下面覆盖的 end_object 方法?

class Serializer(PythonSerializer):
def end_object(self, obj):
self.objects.append({
"model" : smart_unicode(obj._meta), # <-- I want to remove this
"pk" : smart_unicode(obj._get_pk_val(), strings_only=True),
"fields" : fields
})
self._current = None

最佳答案

对不起,我完全忘记了这个问题。这就是我最终解决它的方式(感谢#django 上的 FunkyBob):

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 - 覆盖 Django 对象序列化程序以摆脱指定的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5453237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com