Middleware flash messages in view methods
Flash messages are typically used when users perform an action (e.g. submit a form) and it's necessary to tell them if the action was successful or if there was some kind of error. Other times flash messages are used as one time notifications on web pages to tell users about certain events (e.g. site maintenance or special discounts). Figure 2-5 shows a set of sample flash messages.

Figure 2-5. Web page flash messages
By default, all Django projects are enabled to support flash messages. However, if you tweaked your project's
settings.py
file you may have inadvertently disabled flash messages.In order for Django flash messages to work you must ensure the following values are set in
settings.py
: The variableINSTALLED_APPS
has thedjango.contrib.messages
value, the variableMIDDLEWARE
has thedjango.contrib.messages.middleware.MessageMiddleware
value and thecontext_processors
list inOPTIONS
of theTEMPLATES
variable has thedjango.contrib.messages.context_processors.messages
value.
As you can see in figure 2-5 there can be different types of flash messages, which are technically known as levels. Django follows the standard Syslog standard severity levels and supports five built-in message levels described in table 2-9.
Table 2-9 Django built-in flash messages
Level Constant | Tag | Value | Purpose |
---|---|---|---|
DEBUG | debug | 10 | Development-related messages that will be ignored (or removed) in a production deployment |
INFO | info | 20 | Informational messages for the user |
SUCCESS | success | 25 | An action was successful, e.g. "Contact info was sent successfully" |
WARNING | warning | 30 | A failure did not occur but may be imminent |
ERROR | error | 40 | An action was not successful or some other failure occurred |
The remaining content for Django 4.0 is only available with a subscription.