mirror of
https://github.com/django/django.git
synced 2025-07-23 13:15:32 +00:00
Fixed #16319 -- added SuccessMessageMixin to contrib.messages
Thanks martinogden for the initial patch and d1ffuz0r for tests.
This commit is contained in:
parent
5938e7013e
commit
9a85ad89c2
8 changed files with 104 additions and 1 deletions
|
@ -286,6 +286,53 @@ example::
|
|||
use one of the ``add_message`` family of methods. It does not hide failures
|
||||
that may occur for other reasons.
|
||||
|
||||
Adding messages in Class Based Views
|
||||
------------------------------------
|
||||
|
||||
.. versionadded:: 1.6
|
||||
|
||||
.. class:: django.contrib.messages.views.SuccessMessageMixin
|
||||
|
||||
Adds a success message attribute to
|
||||
:class:`~django.views.generic.edit.FormView` based classes
|
||||
|
||||
.. method:: get_success_message(cleaned_data)
|
||||
|
||||
``cleaned_data`` is the cleaned data from the form which is used for
|
||||
string formatting
|
||||
|
||||
**Example views.py**::
|
||||
|
||||
from django.contrib.messages.views import SuccessMessageMixin
|
||||
from django.views.generic.edit import CreateView
|
||||
from myapp.models import Author
|
||||
|
||||
class AuthorCreate(SuccessMessageMixin, CreateView):
|
||||
model = Author
|
||||
success_url = '/success/'
|
||||
success_message = "%(name)s was created successfully"
|
||||
|
||||
The cleaned data from the ``form`` is available for string interpolation using
|
||||
the ``%(field_name)s`` syntax. For ModelForms, if you need access to fields
|
||||
from the saved ``object`` override the
|
||||
:meth:`~django.contrib.messages.views.SuccessMessageMixin.get_success_message`
|
||||
method.
|
||||
|
||||
**Example views.py for ModelForms**::
|
||||
|
||||
from django.contrib.messages.views import SuccessMessageMixin
|
||||
from django.views.generic.edit import CreateView
|
||||
from myapp.models import ComplicatedModel
|
||||
|
||||
class ComplicatedCreate(SuccessMessageMixin, CreateView):
|
||||
model = ComplicatedModel
|
||||
success_url = '/success/'
|
||||
success_message = "%(calculated_field)s was created successfully"
|
||||
|
||||
def get_success_message(self, cleaned_data):
|
||||
return self.success_message % dict(cleaned_data,
|
||||
calculated_field=self.object.calculated_field)
|
||||
|
||||
Expiration of messages
|
||||
======================
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue