diff options
| author | Paul Collins <paul.collins@brightscope.com> | 2013-03-18 15:48:47 -0700 |
|---|---|---|
| committer | Preston Holmes <preston@ptone.com> | 2013-03-19 21:02:55 -0700 |
| commit | 9a85ad89c20e88340cdba85b8e9f5806c95835db (patch) | |
| tree | 4be9137eb74a4f2e5ae34d379ff5b31f5763a773 /docs/ref | |
| parent | 5938e7013ebba3c0fd1257fe4b00f341e1095e0e (diff) | |
Fixed #16319 -- added SuccessMessageMixin to contrib.messages
Thanks martinogden for the initial patch and d1ffuz0r for tests.
Diffstat (limited to 'docs/ref')
| -rw-r--r-- | docs/ref/contrib/messages.txt | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/docs/ref/contrib/messages.txt b/docs/ref/contrib/messages.txt index dd7c8dbd65..0dd732bec2 100644 --- a/docs/ref/contrib/messages.txt +++ b/docs/ref/contrib/messages.txt @@ -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 ====================== |
