【发布时间】:2015-12-11 17:01:45
【问题描述】:
我有几个类,我想将它们作为 Django Rest Framework 中的嵌套对象附加到我的模型类。我试过“帮助它”弄清楚如何用 repr() 序列化我的类,但都没有运气。有没有办法将我的自定义类作为只读对象实际嵌套到模型表示中?
class WorkflowAction(object):
def __init__(self):
self.code = None
self.name = None
self.context = None
self.state_from = None
self.state_to = None
self.permission_class = None
class WorkflowDefinition(object):
def __init__(self, obj):
self.has_workflow_definition = False
self.has_workflow = False
self.workflow_actions = WorkflowAction()
self._obj = obj
def __repr__(self):
_dict = {}
for item in filter(lambda x: not x.startswith('_') and not callable(getattr(self, x)), dir(self)):
_dict[item] = getattr(self, item)
return str(_dict)
这些类作为属性附加到模型对象:
@property
def workflow_definition(self):
return WorkflowDefinition(self)
模型序列化器和视图是普通的:
class RiskShortSerializer(serializers.ModelSerializer):
class Meta:
model = Risk
fields = (
'id',
'project',
'summary',
'description',
'workflow_definition'
)
class RiskViewSet(viewsets.ModelViewSet):
queryset = Risk.objects.all()
serializer_class = RiskShortSerializer
【问题讨论】:
标签: python serialization django-rest-framework