Files
old-saburly-wagtail-web/env/lib/python3.10/site-packages/wagtail/admin/api/actions/delete.py

27 lines
827 B
Python
Raw Normal View History

2024-08-27 20:33:44 +02:00
from django.core.exceptions import ValidationError as DjangoValidationError
from rest_framework import status
from rest_framework.exceptions import ValidationError
from rest_framework.response import Response
from rest_framework.serializers import Serializer
from wagtail.actions.delete_page import DeletePageAction
from .base import APIAction
class DeletePageAPIAction(APIAction):
serializer = Serializer
def _action_from_data(self, instance, data):
return DeletePageAction(page=instance, user=self.request.user)
def execute(self, instance, data):
action = self._action_from_data(instance, data)
try:
action.execute()
except DjangoValidationError as e:
raise ValidationError(e.message_dict)
return Response(status=status.HTTP_204_NO_CONTENT)