我在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)
我不明白可能出现的问题。
答案 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会起作用..