diff --git a/cookbook/views/delete.py b/cookbook/views/delete.py index 60eddfa6a..67e5429b4 100644 --- a/cookbook/views/delete.py +++ b/cookbook/views/delete.py @@ -1,5 +1,6 @@ from django.contrib import messages from django.contrib.auth.mixins import LoginRequiredMixin +from django.db.models import ProtectedError from django.http import HttpResponseRedirect from django.shortcuts import get_object_or_404 from django.urls import reverse_lazy, reverse @@ -101,6 +102,13 @@ class StorageDelete(GroupRequiredMixin, DeleteView): context['title'] = _("Storage Backend") return context + def post(self, request, *args, **kwargs): + try: + return self.delete(request, *args, **kwargs) + except ProtectedError: + messages.add_message(request, messages.WARNING, _('Could not delete this storage backend as it is used in at least one monitor.')) + return HttpResponseRedirect(reverse('list_storage')) + class CommentDelete(OwnerRequiredMixin, DeleteView): template_name = "generic/delete_template.html"