1. 程式人生 > 實用技巧 >DRF框架之mixins

DRF框架之mixins

一、ListModelMixin

1.引入方式

from rest_framework.mixins import ListModelMixin

2.原始碼對比

我們可以發現,兩處的程式碼基本一致,因此我們直接拿到使用來優化原生代碼

3.使用方法

a.檢視類繼承ListModelMixin

b.get方法中直接returnself.list(request, *args, **kwargs)

    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

二、CreateModelMixin

1.引入方式

from rest_framework.mixins import CreateModelMixin

2.原始碼對比

依然也是基本一致

3.使用方法

a.檢視類繼承CreateModelMixin

b.post方法中直接returnself.create(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        return self.create(request, *args, **kwargs)

三、RetrieveModelMixin

1.引入方式

from rest_framework.mixins import
RetrieveModelMixin

2.原始碼對比

3.使用方法

a.檢視類繼承RetrieveModelMixin

b.get方法中直接returnself.retrieve(request, *args, **kwargs)

    def get(self, request, *args, **kwargs):
        return self.retrieve(request, *args, **kwargs)

四、UpdateModelMixin

1.引入方式

from rest_framework.mixins import UpdateModelMixin

2.原始碼對比

注:這裡有一點不一樣,原始碼中有一個‘partial’,這個表示可以進行部分更新,因此update方法不僅支援全更新,也可以支援部分更新

3.使用方法

a.檢視類繼承UpdateModelMixin

b.put方法中直接returnself.retrieve(request, *args, **kwargs)

    def put(self, request, *args, **kwargs):
        return self.update(request, *args, **kwargs)

五、DestroyModelMixin

1.引入方式

from rest_framework.mixins import DestroyModelMixin

2.原始碼對比

3.使用方法

a.檢視類繼承DestroyModelMixin

b.delete方法中直接returnself.retrieve(request, *args, **kwargs)

    def delete(self, request, *args, **kwargs):
        return self.destroy(request, *args, **kwargs)