Skip to content

Commit 5ece388

Browse files
committed
fix: redirect and flash message when deleting a status used by tasks
1 parent 1c21c4c commit 5ece388

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

task_manager/statuses/views.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from django.contrib import messages
22
from django.contrib.auth.mixins import LoginRequiredMixin
3+
from django.shortcuts import redirect
34
from django.urls import reverse_lazy
45
from django.views.generic import ListView, CreateView, UpdateView, DeleteView
56
from django.db.models import ProtectedError
@@ -41,15 +42,15 @@ def form_valid(self, form):
4142

4243
class StatusDeleteView(LoginRequiredMixin, DeleteView):
4344
model = Status
44-
template_name = "statuses/confirm_delete.html"
45+
template_name = "statuses/delete.html"
4546
success_url = reverse_lazy("statuses_index")
4647
login_url = "users:login"
4748

4849
def post(self, request, *args, **kwargs):
49-
try:
50-
response = super().post(request, *args, **kwargs)
51-
messages.success(request, "Статус успешно удален")
52-
return response
53-
except ProtectedError:
50+
status = self.get_object()
51+
if status.tasks.exists():
5452
messages.error(request, "Невозможно удалить статус, потому что он используется")
55-
return self.get(request, *args, **kwargs)
53+
return redirect("statuses_index")
54+
response = super().post(request, *args, **kwargs)
55+
messages.success(request, "Статус успешно удален")
56+
return response

0 commit comments

Comments
 (0)