чтобы если в пост запросе нет нужного поля, он бы сам возвращал мне 400 ошибку с требованием этого поля? Использую APIView
class GetThumbnailView(APIView):
authentication_classes = (BasicAuthentication,)
permission_classes = (IsAuthenticated,)
def post(self, request, uuid):
# s3.check_exists(request.data.get('thumbnail_key'))
# TODO: create exit from check_exists.
instance = models.File.objects.filter(relative_key__contains=uuid).first()
if not instance:
raise ParseError(detail=f'File with {uuid} key does not exist.')
serializer = serializers.ThumbnailSerializer(instance,
data=request.data,
partial=True)
if serializer.is_valid():
serializer.save()
return Response({'detail': 'success'}, status=status.HTTP_200_OK)
И вот сериалайзер
class ThumbnailSerializer(serializers.ModelSerializer):
class Meta:
model = models.File
fields = ('thumbnail_key',)
read_only_fields = ('thumbnail_key',)
def update(self, instance, validated_data):
instance.thumbnail_key = validated_data.get('key', instance.thumbnail_key)
instance.save()
return instance
Эта задача должна же быть возложена на серелизатор.
Вручную проверку получается делать?
Должно быть достаточно объявить поля по их типу в сериалайзере и указать, что они обязательны.
Обсуждают сегодня