#32514: A mixin for success messages when an object is deleted
--------------------------------------------+------------------------
Reporter: Willem Van Onsem | Owner: nobody
Type: New feature | Status: new
Component: contrib.messages | Version: dev
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 1
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
--------------------------------------------+------------------------
A case that is not covered by the `SuccessMessageMixin` is to add a
successmessage when the object is removed.
It might be a good idea to create a mixin that will send a success message
in case of a successful DELETE/POST request. This could look like:
{{{
diff --git a/django/contrib/messages/views.py
b/django/contrib/messages/views.py
index eaa1bee9d5..ac938f7845 100644
--- a/django/contrib/messages/views.py
+++ b/django/contrib/messages/views.py
@@ -16,3 +16,21 @@ class SuccessMessageMixin:
def get_success_message(self, cleaned_data):
return self.success_message % cleaned_data
+
+
+class SuccessDeleteMessageMixin:
+ """
+ Add a success message on a successful DELETE request (and sometimes
POST request
+ if this will make trigger delete).
+ """
+ success_message = ''
+
+ def delete(self, *args, **kwargs):
+ response = super().delete(*args, **kwargs)
+ success_message = self.get_success_message()
+ if success_message:
+ messages.success(self.request, success_message)
+ return response
+
+ def get_success_message(self):
+ return self.success_message
}}}
--
Ticket URL: <https://code.djangoproject.com/ticket/32514>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/052.a5de5f275c21e1e892d145e1f73334bb%40djangoproject.com.