覆盖Django Object Serializer以摆脱指定的模型 [英] Override Django Object Serializer to get rid of specified model
本文介绍了覆盖Django Object Serializer以摆脱指定的模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要将Django Queryset对象转换为Json字符串。内置的Django序列化库效果很好。虽然它指定了创建它的模型的名称。既然我不需要这个,我该如何摆脱呢?我还需要覆盖哪些东西才能使用下面的覆盖的end_object方法?
I need to convert a Django Queryset Object into a Json string. The built in Django Serialization library works great. Although it specifies the name of the Model from where it was created. Since I don't need this, how do I get rid of it? What else do I need to override to be able to use the overridden end_object method below?
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):
Sorry I had totally forgot about this question. This is how I ended up solving it (with thanks to FunkyBob on #django):
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 Object Serializer以摆脱指定的模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文