モジュールを使用django.contrib.messages
してフラッシュメッセージを作成します。これらのメッセージは、追加のタグに応じて、ページのさまざまなブロックに表示できます。
messages.error(request, 'Error message', extra_tags='form')
'global'という名前のデフォルトのタグがあり、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()
。
私の失敗はどこにありますか?