summaryrefslogtreecommitdiff
path: root/docs/ref
diff options
context:
space:
mode:
authorPaul Collins <paul.collins@brightscope.com>2013-03-18 15:48:47 -0700
committerPreston Holmes <preston@ptone.com>2013-03-19 21:02:55 -0700
commit9a85ad89c20e88340cdba85b8e9f5806c95835db (patch)
tree4be9137eb74a4f2e5ae34d379ff5b31f5763a773 /docs/ref
parent5938e7013ebba3c0fd1257fe4b00f341e1095e0e (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.txt47
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
======================