J'utilise le module django.contrib.messages
pour créer des messages de vidage. Ces messages peuvent être présentés dans différents blocs sur la page, dépend de balise supplémentaire:Méthode de remplacement de module sur le démarrage Django
messages.error(request, 'Error message', extra_tags='form')
Je balise par défaut nommé « global » et je dois l'ajouter dans un nouveau message si aucun extra_tags défini. Alors, je l'ai écrit middleware pour envelopper méthode django.contrib.messages.add_message()
au démarrage de l'application:
class Initialization:
def __init__(self):
self.init_messages()
raise MiddlewareNotUsed
def init_messages(self):
add_message_method = messages.add_message
def add_message_wrapper(request, level, message, extra_tags='', fail_silently=False):
if not extra_tags:
extra_tags = 'global'
add_message_method(request, level, message, extra_tags, fail_silently)
messages.add_message = add_message_wrapper
Je vois cette méthode init_messages()
est appelée, mais quand je l'appelle django.contrib.messages.add_message()
, il est pas entouré de add_message_wrapper()
.
Où est mon échec?
Avez-vous appelé 'messages.add_message()' 'ou messages.error() '. – okm