|
1 | 1 | from django.contrib import messages |
2 | 2 | from django.contrib.auth.mixins import LoginRequiredMixin |
| 3 | +from django.shortcuts import redirect |
3 | 4 | from django.urls import reverse_lazy |
4 | 5 | from django.views.generic import ListView, CreateView, UpdateView, DeleteView |
5 | 6 | from django.db.models import ProtectedError |
@@ -41,15 +42,15 @@ def form_valid(self, form): |
41 | 42 |
|
42 | 43 | class StatusDeleteView(LoginRequiredMixin, DeleteView): |
43 | 44 | model = Status |
44 | | - template_name = "statuses/confirm_delete.html" |
| 45 | + template_name = "statuses/delete.html" |
45 | 46 | success_url = reverse_lazy("statuses_index") |
46 | 47 | login_url = "users:login" |
47 | 48 |
|
48 | 49 | 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(): |
54 | 52 | 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