用户应在注册后和注销后重定向到登录页面。在这两种情况下,都必须显示一条指示相关消息的消息。
使用django.contrib.auth.views.login
我如何发送这些 {{ info }} 消息。
一个可能的选择是将复制auth.views
到新的注册模块并包含所有必要的东西。但这似乎还不够干。
什么是最好的方法。
更新:问题阐述:
对于正常情况,当您想向某些用户指示您可以使用的操作的响应时
request.user.message_set.create()
这将创建一条消息,该消息显示在其中一个模板中并自动删除。
但是,此消息系统仅适用于继续具有相同会话 ID 的登录用户。在注册的情况下,用户没有经过身份验证,并且在由于会话更改而退出的情况下,无法使用该系统。
除此之外,内置函数login
和logout
函数django.contrib.auth.views
返回一个“HttpResponseRedirect”,这使得无法向模板添加另一个变量。
我尝试在请求对象本身上进行设置
request.info='Registered'
并在不同的视图中检查
try:
info = request.info:
del request.info
except:
info = ''
#later
render_to_response('app/file',{'info':info})
即使这样也没有用。
显然,我可以定义一个已注册的.html 并在其中添加此静态消息,但我懒得编写另一个模板并尝试 DRY 实现它。
我意识到“注册”消息和“注销”消息的情况不同。我使用的 DRY 方法,我将写为答案。