到目前为止,(1)和(2)在我的Development Django环境中产生了相同的结果。但它们是否真的相同,或者我最终会在一个我无法提前预测的环境中丢失一些消息?
(1)
return HttpResponseRedirect('/my/home/page', messages.add_message(request, messages.INFO, 'My message here'))
(2)
messages.add_message(request, messages.INFO, 'My message here')
return HttpResponseRedirect('/my/home/page')
答案 0 :(得分:2)
这两种方式都有效,因为messages.add_message()
会将消息添加到request.session
就地。但第一个看起来很奇怪。 add_message
不会返回任何有助于包含在HttpResponseRedirect
中的内容。所以我相信你应该选择第二种选择:
messages.add_message(request, messages.INFO, 'My message here')
return HttpResponseRedirect('/my/home/page')
或使用几个快捷方式
from django.shortcuts import redirect
messages.info(request, 'My message here')
return redirect('/my/home/page')