perform_create(self, serializer): CreateModelMixin 当执行保存对象时候会被调用 perform_update(self, serializer):UpdateModelMixin 当执行更新对象时候会被调用 perform_destroy(self, instance): DestoryModelMixin 当执行删除对象时候会被调用 3.高级通用类视图 该通用类视图提供具体操作的通用类视图,可以理解Generic...
def perform_create(self, serializer): """ 序列化:对请求的数据校验成功后,执行保存。""" serializer.save(depart_id=1, password="123") def perform_update(self, serializer): serializer.save() def perform_destroy(self, instance): instance.delete() 示例4: # urls.py from django.urls import pat...
def perform_update(self, serializer): serializer.save() def partial_update(self, request, *args, **kwargs): kwargs['partial'] = True return self.update(request, *args, **kwargs) class DestroyModelMixin: """ Destroy a model instance. """ def destroy(self, request, *args, **kwargs)...
def perform_update(self, serializer): serializer.save() def partial_update(self, request, *args, **kwargs): kwargs['partial'] = True return self.update(request, *args, **kwargs) 5)DestroyModelMixin 删除视图扩展类,提供destroy(request, *args, **kwargs)方法,可以快速实现删除一个存在的数据...
self.perform_update(serializer) ifgetattr(instance,'_prefetched_objects_cache',None): # If 'prefetch_related' has been applied to a queryset, we need to # forcibly invalidate the prefetch cache on the instance. instance._prefetched_objects_cache={} ...
obj_serializer.save()request.data['orderPerson']=request.data.get('orderPerson_id')serializer=self.get_serializer(instance,data=request.data,partial=partial)serializer.is_valid(raise_exception=True)self.perform_update(serializer)# for i in serializer.data:# print(i)ifgetattr(instance,'_prefetched...
perform_create这个钩子函数是CreateModelMixin类自带的,用于执行创建对象时需要执行的其它方法,比如发送邮件等功能,有点类似于Django的信号。类似的钩子函数还有UpdateModelMixin提供的perform_update方法和DestroyModelMixin提供的perform_destroy方法。 使用通用视图Generics.*类 ...
self.perform_update(serializer) return Response(serializer.data) ``` 上述代码演示了如何创建一个自定义的更新操作,对于单个对象进行更新,并返回更新后的结果。 ###自定义删除方法 ```python @action(detail=True, methods=['delete']) def custom_destroy(self, request, pk=None): #自定义删除操作逻辑 ins...
更新视图扩展类,提供update(request,*args,**kwargs)方法,可以快速实现更新一个存在的数据对象。 同时也提供partial_update(request,*args,**kwargs)方法,可以实现局部更新。 成功返回200,序列化器校验数据失败时,返回400错误。 源代码: classUpdateModelMixin(object): ...
Update a model instance.""" defupdate(self,request,*args,**kwargs):partial=kwargs.pop('partial',False)instance=self.get_object()serializer=self.get_serializer(instance,data=request.data,partial=partial)serializer.is_valid(raise_exception=True)self.perform_update(serializer)ifgetattr(instance,'_pre...