mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
[4.0.x] Refs #33263 -- Added warning to BaseDeleteView when delete() method is overridden.
Follow up to3a45fea083. Backport of6bc437c0d8from main
This commit is contained in:
@@ -4,7 +4,10 @@ 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, FormMixin, ModelFormMixin
|
||||
from django.views.generic.edit import (
|
||||
CreateView, DeleteView, DeleteViewCustomDeleteWarning, FormMixin,
|
||||
ModelFormMixin,
|
||||
)
|
||||
|
||||
from . import views
|
||||
from .forms import AuthorForm
|
||||
@@ -426,3 +429,21 @@ 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()
|
||||
|
||||
Reference in New Issue
Block a user