在HttpResponseRedirect中包含或不包含我的消息?

时间:2016-01-18 18:01:58

标签: django django-forms django-templates

到目前为止,(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')

1 个答案:

答案 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')