serializers.py 文件源码

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

项目:apimas 作者: grnet 项目源码 文件源码
def perform_action(self, validated_data, instance=None, **kwargs):
        new_instance = None
        for k, v in validated_data.iteritems():
            drf_field = self.fields[k]
            if isinstance(drf_field, serializers.BaseSerializer):
                value = self._set_new_instance(
                    new_instance, instance, drf_field, v, **kwargs)
                if value:
                    new_instance = value
            elif instance is not None:
                self.update_non_model_field(drf_field, instance, v,
                                            validated_data)
            else:
                self.create_non_model_field(drf_field, v, validated_data)

        # In case of an update action where `instance` has specified,
        # there is a case when client sent empty data, and, therefore,
        # current instance is not updated. Thus, in this case, return
        # the current instance instead of the new one.
        return new_instance or getattr(self, 'instance', None)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号