Я использую модуль django.contrib.messages
для создания сообщений флеша. Эти сообщения могут быть представлены в различных блоках на странице, зависит от дополнительного тега:Метод переопределения модуля при запуске Django
messages.error(request, 'Error message', extra_tags='form')
У меня есть тег по умолчанию с именем «глобальной», и мне нужно, чтобы добавить его в новом сообщении, если нет extra_tags не установлено. Так что я написал промежуточное программное обеспечение, чтобы обернуть django.contrib.messages.add_message()
метод при запуске приложения:
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
Я вижу, что init_messages()
метод вызывается, но когда я называю django.contrib.messages.add_message()
, не обернуты add_message_wrapper()
.
Где мой отказ?
ли вы назвать 'messages.add_message()' или 'messages.error() '. – okm