库
djangorestframework-bulk==0.2.1
类
from rest_framework_bulk import BulkModelViewSet
使用方法
class CustomViewSet(BulkModelViewSet):
pass
BulkModelViewSet
继承了bulk_mixins.BulkCreateModelMixin,bulk_mixins.BulkUpdateModelMixin,bulk_mixins.BulkDestroyModelMixin,
以下会挨个分析
BulkCreateModelMixin
:- 重写了
create
方法.判断request.data
是否为数组,如果是,则修改bulk
标记为true
. - 提供了
perform_bulk_create
方法作为自定义批量创建方法的hook,默认状态与非bulk时相同. - 调用链:
BulkCreateModelMixin.perform_bulk_create
→CreateModelMixin.perform_create(serializer)
→serializer.save()
→ListSerializer.save()
→ListSerializer.create()
→循环数据并调用self.child.create(attrs)
- 重写了
BulkUpdateModelMixin
- 直接添加了bulk_update方法.将put方法重定向到bulk_update方法.注意是/app/model/的put方法.之前如果调用是method_not_allow.现在有处理方法了.
- 调用链与上面相同.注意调用了序列化器的update方法.所以
ListSerializer
必须是BulkListSerializer
或者其子类.
BulkDestroyModelMixin
- 添加了destory方法.很简单