def create(self, request, *args, **kwargs):
try:
return super().create(request, *args, **kwargs)
except UploadDuplicateError as e:
dup = Image.objects.get(pk=e.instance.hash)
# this usage of parse_duration is safe, because we already
# validated the data (exception is thrown by the Model class, so
# the validator passed).
if 'expiration' in request.data:
dup.expiration = parse_duration(request.data['expiration'])
dup.save()
serializer = self.get_serializer(dup)
headers = self.get_success_headers(serializer.data)
return Response(serializer.data, status=status.HTTP_201_CREATED,
headers=headers)
评论列表
文章目录