1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
from django.contrib.messages import constants
from django.contrib.messages.storage import default_storage
__all__ = (
"add_message",
"get_messages",
"get_level",
"set_level",
"debug",
"info",
"success",
"warning",
"error",
"MessageFailure",
)
class MessageFailure(Exception):
pass
def add_message(request, level, message, extra_tags="", fail_silently=False):
"""
Attempt to add a message to the request using the 'messages' app.
"""
try:
messages = request._messages
except AttributeError:
if not hasattr(request, "META"):
raise TypeError(
"add_message() argument must be an HttpRequest object, not "
"'%s'." % request.__class__.__name__
)
if not fail_silently:
raise MessageFailure(
"You cannot add messages without installing "
"django.contrib.messages.middleware.MessageMiddleware"
)
else:
return messages.add(level, message, extra_tags)
def get_messages(request):
"""
Return the message storage on the request if it exists, otherwise return
an empty list.
"""
return getattr(request, "_messages", [])
def get_level(request):
"""
Return the minimum level of messages to be recorded.
The default level is the ``MESSAGE_LEVEL`` setting. If this is not found,
use the ``INFO`` level.
"""
storage = getattr(request, "_messages", default_storage(request))
return storage.level
def set_level(request, level):
"""
Set the minimum level of messages to be recorded, and return ``True`` if
the level was recorded successfully.
If set to ``None``, use the default level (see the get_level() function).
"""
if not hasattr(request, "_messages"):
return False
request._messages.level = level
return True
def debug(request, message, extra_tags="", fail_silently=False):
"""Add a message with the ``DEBUG`` level."""
add_message(
request,
constants.DEBUG,
message,
extra_tags=extra_tags,
fail_silently=fail_silently,
)
def info(request, message, extra_tags="", fail_silently=False):
"""Add a message with the ``INFO`` level."""
add_message(
request,
constants.INFO,
message,
extra_tags=extra_tags,
fail_silently=fail_silently,
)
def success(request, message, extra_tags="", fail_silently=False):
"""Add a message with the ``SUCCESS`` level."""
add_message(
request,
constants.SUCCESS,
message,
extra_tags=extra_tags,
fail_silently=fail_silently,
)
def warning(request, message, extra_tags="", fail_silently=False):
"""Add a message with the ``WARNING`` level."""
add_message(
request,
constants.WARNING,
message,
extra_tags=extra_tags,
fail_silently=fail_silently,
)
def error(request, message, extra_tags="", fail_silently=False):
"""Add a message with the ``ERROR`` level."""
add_message(
request,
constants.ERROR,
message,
extra_tags=extra_tags,
fail_silently=fail_silently,
)
|