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