middleware that handles temporary messages update the storage backend i e save the messages raise valueerror if not all messages could be stored and debug is true a higher middleware layer may return a request which does not contain messages storage so make no assumption that it will be there middleware that handles temporary messages update the storage backend i e save the messages raise valueerror if not all messages could be stored and debug is true a higher middleware layer may return a request which does not contain messages storage so make no assumption that it will be there
from django.conf import settings
from django.contrib.messages.storage import default_storage
from django.utils.deprecation import MiddlewareMixin


class MessageMiddleware(MiddlewareMixin):
    

    def process_request(self, request):
        request._messages = default_storage(request)

    def process_response(self, request, response):
        
        
        
        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