def add_disponibility_representation(func):
@wraps(func)
def _impl(self, instance):
# We pop disponibility field to avoid AttributeError on default Serializer.to_representation
for i, field in enumerate(self._readable_fields):
if field.field_name == "disponibility":
disponibility = self._readable_fields.pop(i)
ret = func(self, instance)
self._readable_fields.insert(i, disponibility) # Put disp back
# Add disponibility representation
obj = None
ret["disponibility"] = None
try:
type = "job"
obj = JobSerializer().to_representation(instance.job)
except models.Job.DoesNotExist:
try:
type = "work"
obj = WorkSerializer().to_representation(instance.work)
except models.Work.DoesNotExist: # pragma: no cover
pass
if obj:
ret["disponibility"] = {
"type": type,
type: obj
}
return ret
return _impl
disponibility.py 文件源码
python
阅读 23
收藏 0
点赞 0
评论 0
评论列表
文章目录