重写 ModelViewSet 的 update() 和 create() 方法

update()重写

  1. def update(self, request, *args, **kwargs):
  2. instance = self.get_object()
  3. serializer = self.get_serializer(instance, data=request.data)
  4. serializer.is_valid(raise_exception=True)
  5. instance.user_info.dept = instance.dept
  6. instance.user_info.save()
  7. serializer.save()
  8. return Response(serializer.data)

create() 重写

  1. def create(self, request, *args, **kwargs):
  2. serializer = self.get_serializer(data=request.data)
  3. serializer.is_valid(raise_exception=True)
  4. password = request.data['password'] if 'password' in request.data else None
  5. password = make_password(password)
  6. serializer.save(password=password)
  7. return Response(serializer.data)