在 HttpResponseRedirect 中包含或不包含我的消息?
Include or not my messages in HttpResponseRedirect?
到目前为止,(1) 和 (2) 在我的 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')
这两种方式都有效,因为 messages.add_message()
将消息添加到您的 request.session
in-place。但是第一个看起来很奇怪。 add_message
return 没有任何有用的东西可以包含在 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')
到目前为止,(1) 和 (2) 在我的 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')
这两种方式都有效,因为 messages.add_message()
将消息添加到您的 request.session
in-place。但是第一个看起来很奇怪。 add_message
return 没有任何有用的东西可以包含在 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')