在Django中添加消息

时间:2015-04-08 05:47:20

标签: python django django-templates

我在Django中使用消息。

我完全按照文档中的说明完成,并且消息显示在我的网站投入生产时应该如此。但是在cloud9的开发中他们没有展示。可能有什么不对?

在开发过程中,如果我使用

,它不会添加消息
def form_valid(self, form):
    self.object = form.save()
    messages.success(self.request, "Updated")
    return HttpResponseRedirect(self.get_success_url())

但如果我使用

,它会添加消息
def dispatch(self, request, *args, **kwargs):
    messages.success(request, 'Updated')
    return super(ItemUpdateView, self).dispatch(request, *args, **kwargs)

我不明白可能出现的问题。

2 个答案:

答案 0 :(得分:2)

请确保您已在生产阶段的settings.py中添加了中间件' django.contrib.messages.middleware.MessageMiddleware' 并确保在views.py中导入了消息。 同时检查已安装的应用中的' django.contrib.messages'

答案 1 :(得分:0)

如果您需要self.request,则必须覆盖__init__方法

def __init__(self, *args, **kwargs):
    self.request = kwargs.pop('request', None)
    super(YourForm, self).__init__(*args, **kwargs)

所以在那之后你的self.request会起作用..