disponibility.py 文件源码

python
阅读 23 收藏 0 点赞 0 评论 0

项目:django-open-volunteering-platform 作者: OpenVolunteeringPlatform 项目源码 文件源码
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
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号