def update_post(self, request, **kwargs): try: post = Post.objects.get(**kwargs) except Post.DoesNotExist: return response404('Post') self.check_object_permissions(request=request, obj=post) file = request.FILES.get('file', None) image = request.FILES.get('image', None) if file: post.file = file post.save() request.data.pop('post') if image: post.image = image post.save() request.data.pop('image') serializer = PostSerializer(post, data=request.data, partial=True) if not serializer.is_valid(): return response406({ **serializer.errors, 'message': 'Błąd walidacji' }) serializer.update(post, serializer.validated_data) return response200({ **serializer.data, 'message': 'Pomyślnie zaktualizowano posta' })
def edit_post(self, request, **kwargs): post = Post.objects.get(id=kwargs.get('post_id')) self.check_object_permissions(request, post) serializer = PostSerializer(post, request.data, context={"host": request.get_host()}, partial=True) if not serializer.is_valid(): print(serializer.errors) return Response(data=serializer.errors, status=status.HTTP_406_NOT_ACCEPTABLE) serializer.update(post, serializer.validated_data) return Response(data=serializer.data, status=status.HTTP_200_OK)