Browse Source

Refs #33263 -- Removed warning in BaseDeleteView when delete() method is overridden.

Mariusz Felisiak 2 years ago
parent
commit
003081468e
2 changed files with 1 additions and 45 deletions
  1. 0 20
      django/views/generic/edit.py
  2. 1 25
      tests/generic_views/test_edit.py

+ 0 - 20
django/views/generic/edit.py

@@ -1,5 +1,3 @@
-import warnings
-
 from django.core.exceptions import ImproperlyConfigured
 from django.forms import Form
 from django.forms import models as model_forms
@@ -240,11 +238,6 @@ class DeletionMixin:
             raise ImproperlyConfigured("No URL to redirect to. Provide a success_url.")
 
 
-# RemovedInDjango50Warning.
-class DeleteViewCustomDeleteWarning(Warning):
-    pass
-
-
 class BaseDeleteView(DeletionMixin, FormMixin, BaseDetailView):
     """
     Base view for deleting an object.
@@ -254,19 +247,6 @@ class BaseDeleteView(DeletionMixin, FormMixin, BaseDetailView):
 
     form_class = Form
 
-    def __init__(self, *args, **kwargs):
-        # RemovedInDjango50Warning.
-        if self.__class__.delete is not DeletionMixin.delete:
-            warnings.warn(
-                f"DeleteView uses FormMixin to handle POST requests. As a "
-                f"consequence, any custom deletion logic in "
-                f"{self.__class__.__name__}.delete() handler should be moved "
-                f"to form_valid().",
-                DeleteViewCustomDeleteWarning,
-                stacklevel=2,
-            )
-        super().__init__(*args, **kwargs)
-
     def post(self, request, *args, **kwargs):
         # Set self.object before the usual form processing flow.
         # Inlined because having DeletionMixin as the first base, for

+ 1 - 25
tests/generic_views/test_edit.py

@@ -4,13 +4,7 @@ from django.test import SimpleTestCase, TestCase, override_settings
 from django.test.client import RequestFactory
 from django.urls import reverse
 from django.views.generic.base import View
-from django.views.generic.edit import (
-    CreateView,
-    DeleteView,
-    DeleteViewCustomDeleteWarning,
-    FormMixin,
-    ModelFormMixin,
-)
+from django.views.generic.edit import CreateView, FormMixin, ModelFormMixin
 
 from . import views
 from .forms import AuthorForm
@@ -476,21 +470,3 @@ class DeleteViewTests(TestCase):
             res.context_data["form"].errors["confirm"],
             ["This field is required."],
         )
-
-    # RemovedInDjango50Warning.
-    def test_delete_with_custom_delete(self):
-        class AuthorDeleteView(DeleteView):
-            model = Author
-
-            def delete(self, request, *args, **kwargs):
-                # Custom logic.
-                pass
-
-        msg = (
-            "DeleteView uses FormMixin to handle POST requests. As a "
-            "consequence, any custom deletion logic in "
-            "AuthorDeleteView.delete() handler should be moved to "
-            "form_valid()."
-        )
-        with self.assertWarnsMessage(DeleteViewCustomDeleteWarning, msg):
-            AuthorDeleteView()