Skip to main content
 首页 » 编程设计

python之使用 auth.views 的 django 身份验证

2024年08月12日51mengfanrong

用户在注册和注销后应该被重定向到登录页面。在这两种情况下,都必须显示一条指示相关消息的消息。

使用 django.contrib.auth.views.login 如何发送这些 {{ info }} 消息。

一个可能的选择是将 auth.views 复制到新的注册模块并包括所有必要的东西。但这似乎还不够干。

什么是最好的方法。

更新:问题阐述:

对于正常情况,当您想向某些用户指示您可以使用的操作的响应时

request.user.message_set.create() 

这会创建一条消息,该消息会显示在其中一个模板中并自动删除。

然而,此消息系统仅适用于继续具有相同 session ID 的登录用户。在注册的情况下,用户未通过身份验证,在由于 session 更改而注销的情况下,无法使用该系统。

除此之外,django.contrib.auth.views 中的内置 login 和 logout 函数返回一个“HttpResponseRedirect”,这使得不可能向模板添加另一个变量。

我尝试在请求对象本身上设置一些东西

request.info='Registered' 

并在不同的 View 中检查它

try: 
   info = request.info: 
   del request.info 
except: 
   info = '' 
 
#later 
render_to_response('app/file',{'info':info}) 

即使这样也行不通。

很明显,我可以定义一个 registered.html 并在其中添加此静态消息,但我懒得编写另一个模板并尝试将其实现为 DRY。

我意识到“注册”消息和“注销”消息的情况不同。而我使用的 DRY 方法,我将写为答案。

请您参考如下方法:

如果消息是静态的,您可以为这些 View 使用自己的模板:

(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'} 

来自docs .