mirror of
https://github.com/django/django.git
synced 2025-05-07 15:36:29 +00:00
This deprecates User.message_set in favour of a configurable messaging system, with backends provided for cookie storage, session storage and backward compatibility. Many thanks to Tobias McNulty for the bulk of the work here, with contributions from Chris Beaven (SmileyChris) and lots of code review from Russell Keith-Magee, and input from many others. Also credit to the authors of various messaging systems for Django whose ideas may have been pinched :-) git-svn-id: http://code.djangoproject.com/svn/django/trunk@11804 bcc190cf-cafb-0310-a4f2-bffc1f526a37
27 lines
957 B
Python
27 lines
957 B
Python
from django.conf import settings
|
|
from django.contrib.messages.storage import default_storage
|
|
|
|
|
|
class MessageMiddleware(object):
|
|
"""
|
|
Middleware that handles temporary messages.
|
|
"""
|
|
|
|
def process_request(self, request):
|
|
request._messages = default_storage(request)
|
|
|
|
def process_response(self, request, response):
|
|
"""
|
|
Updates the storage backend (i.e., saves the messages).
|
|
|
|
If not all messages could not be stored and ``DEBUG`` is ``True``, a
|
|
``ValueError`` is raised.
|
|
"""
|
|
# A higher middleware layer may return a request which does not contain
|
|
# messages storage, so make no assumption that it will be there.
|
|
if hasattr(request, '_messages'):
|
|
unstored_messages = request._messages.update(response)
|
|
if unstored_messages and settings.DEBUG:
|
|
raise ValueError('Not all temporary messages could be stored.')
|
|
return response
|