python drf查看mixin以更新不存在的对象(例如,更新或创建然后更新)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python drf查看mixin以更新不存在的对象(例如,更新或创建然后更新)相关的知识,希望对你有一定的参考价值。

from django.http.response import Http404


class UpdateNonExistentMixin(object):
    """
    drf views mixin for update an non-existent object(e.g. update or create then update).
    """
    def get_object(self):
        try:
            obj = super().get_object()
        except Http404:
            # update even not exists
            if self.action in ['update', 'partial_update']:
                lookup_url_kwarg = self.lookup_url_kwarg or self.lookup_field
                obj = self.get_serializer_class().Meta.model(**{self.lookup_field: self.kwargs[lookup_url_kwarg]})
            else:
                raise Http404
        return obj

以上是关于python drf查看mixin以更新不存在的对象(例如,更新或创建然后更新)的主要内容,如果未能解决你的问题,请参考以下文章

DRF的APIView和mixins+GenericAPIView和ListAPIView

DRF保存嵌套对象并更新另一个

如何根本不允许 PUT 方法但允许在 DRF ViewSet 中使用 PATCH?

drf 中的ListAPIView视图

Django DRF 更新用户

关于Python的Mixin模式