【发布时间】:2012-04-25 12:57:41
【问题描述】:
我使用django.contrib.messages 模块来创建刷新消息。这些消息可以显示在页面的不同块中,取决于额外的标签:
messages.error(request, 'Error message', extra_tags='form')
我有名为“global”的默认标签,如果没有设置额外标签,我需要将它添加到新消息中。所以我写了中间件来包装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()。
标签: django python-module django-middleware