【发布时间】:2018-07-24 22:45:33
【问题描述】:
这是泛型的一个分支,我如何在 JSON 序列化中包含属性,在此回答:https://stackoverflow.com/a/38253327/4140357
from django.core.serializers.base import Serializer as BaseSerializer
from django.core.serializers.python import Serializer as PythonSerializer
from django.core.serializers.json import Serializer as JsonSerializer
class ExtBaseSerializer(BaseSerializer):
def serialize_property(self, obj):
model = type(obj)
for field in self.selected_fields:
if hasattr(model, field) and type(getattr(model,
field)) == property:
self.handle_prop(obj, field)
def handle_prop(self, obj, field):
self._current[field] = getattr(obj, field)
def end_object(self, obj):
self.serialize_property(obj)
super(ExtBaseSerializer, self).end_object(obj)
class ExtPythonSerializer(ExtBaseSerializer, PythonSerializer):
pass
class ExtJsonSerializer(ExtPythonSerializer, JsonSerializer):
pass
使用方法:
ExtJsonSerializer().serialize(
MyModel.objects.all(),
fields=['field_name_1', 'property_1' ...]
)
它适用于 JSON。
你怎么能为GEODJango's GEJSON serializer做同样的事情?
【问题讨论】:
标签: django geojson geodjango django-serializer