equal
deleted
inserted
replaced
|
1 from django.contrib.messages.storage.base import BaseStorage |
|
2 |
|
3 |
|
4 class SessionStorage(BaseStorage): |
|
5 """ |
|
6 Stores messages in the session (that is, django.contrib.sessions). |
|
7 """ |
|
8 session_key = '_messages' |
|
9 |
|
10 def __init__(self, request, *args, **kwargs): |
|
11 assert hasattr(request, 'session'), "The session-based temporary "\ |
|
12 "message storage requires session middleware to be installed, "\ |
|
13 "and come before the message middleware in the "\ |
|
14 "MIDDLEWARE_CLASSES list." |
|
15 super(SessionStorage, self).__init__(request, *args, **kwargs) |
|
16 |
|
17 def _get(self, *args, **kwargs): |
|
18 """ |
|
19 Retrieves a list of messages from the request's session. This storage |
|
20 always stores everything it is given, so return True for the |
|
21 all_retrieved flag. |
|
22 """ |
|
23 return self.request.session.get(self.session_key), True |
|
24 |
|
25 def _store(self, messages, response, *args, **kwargs): |
|
26 """ |
|
27 Stores a list of messages to the request's session. |
|
28 """ |
|
29 if messages: |
|
30 self.request.session[self.session_key] = messages |
|
31 else: |
|
32 self.request.session.pop(self.session_key, None) |
|
33 return [] |