mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Fixed #16319 -- added SuccessMessageMixin to contrib.messages
Thanks martinogden for the initial patch and d1ffuz0r for tests.
This commit is contained in:
committed by
Preston Holmes
parent
5938e7013e
commit
9a85ad89c2
@@ -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
|
||||
======================
|
||||
|
||||
|
||||
@@ -126,6 +126,10 @@ Minor features
|
||||
* The ``MemcachedCache`` cache backend now uses the latest :mod:`pickle`
|
||||
protocol available.
|
||||
|
||||
* Added :class:`~django.contrib.messages.views.SuccessMessageMixin` which
|
||||
provides a ``success_message`` attribute for
|
||||
:class:`~django.view.generic.edit.FormView` based classes.
|
||||
|
||||
* Added the :attr:`django.db.models.ForeignKey.db_constraint` and
|
||||
:attr:`django.db.models.ManyToManyField.db_constraint` options.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user