def put(self, request, primary_key): """ update student :author: lishanZheng :date: 2020/01/02 """ student = self.get_object() if student.id != primary_key: pass data = request.data company_data = data.get("company") if student.company is None: company = Company.objects.create(**company_data) student.company = company student.save() else: company_serializer = CompanySerializer(data=company_data, partial=True, instance=student.company) if company_serializer.is_valid(): company_serializer.save() student_serializer = StudentSerializer(data=data, partial=True, instance=student) if student_serializer.is_valid(): student_serializer.save() return result_util.success(student_serializer.data)
def put(self, request, pk, format=None): student = self.get_object(pk) serializer = StudentSerializer(student, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def student_list(request): if request.method == 'GET': student = Student.objects.all() serializer = StudentSerializer(student, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = StudentSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request): """ 新增某学号数据 """ request_data = request.body.decode('utf-8') python_dict = json.loads(request_data, encoding='utf-8') # 反序列化 serializer = StudentSerializer(data=python_dict) try: # 反序列化验证 serializer.is_valid(raise_exception=True) except Exception as e: return JsonResponse({"msg": "添加失败", "error": serializer.errors}, safe=False) # 序列化创建数据,保存 serializer.save() return JsonResponse({"code": "201", "msg": "添加成功", "data": serializer.data}, safe=False)
def put(self, request, pk): """ 修改某学号的数据 """ student_cls = self.check_pk(pk=pk) # 获取前端数据 request_data = request.body.decode('utf-8') python_dict = json.loads(request_data, encoding='utf-8') # 反序列化 serializer = StudentSerializer(instance=student_cls, data=python_dict) try: serializer.is_valid(raise_exception=True) except Exception as e: return JsonResponse({"msg": "修改失败", "error": serializer.errors}, safe=False) # 序列化修改,保存 serializer.save() return JsonResponse({"code": "201", "msg": "修改成功", "data": serializer.data}, safe=False)
def student_detail(request, pk): try: student = Student.objects.get(pk=pk) except Student.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = StudentSerializer(student) return Response(serializer.data) elif request.method == 'PUT': serializer = StudentSerializer(student, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': serializer = StudentSerializer(student, data=request.data) student.delete() print("berhasil") return Response(status=status.HTTP_204_NO_CONTENT)
def post(self, request, format=None): serializer = StudentSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)