python - 使用 auth.views 进行 django 身份验证

标签 python django authentication django-authentication

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

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

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

最好的方法是什么。

更新:问题阐述:

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

request.user.message_set.create()

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

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

除此之外,django.contrib.auth.views 中内置的 loginlogout 函数返回一个“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 方法,我将写为答案。

最佳答案

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

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

来自docs .

关于python - 使用 auth.views 进行 django 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/938427/

相关文章:

python - 我在 pandas DataFrame 中有字符串索引,如何通过 startswith 选择?

python - 如何在嵌套循环中关闭 sys.stdout ,以便它不会将打印语句复制到文件中的内循环之外

python - Pandas drop 函数在 for 循环中不起作用?

python - 如何编写在 Postgres 列中查找单词的 Django 查询?

php - 使用 php 和 mysql 登录表单出错

python - 在 Mac OS X Lion 上的 Eclipse PyDev 中将 python 作为 32 位进程运行

python - Django 信号如何工作?

python - 在不同命名的字段上对两个不同的模型进行排序

authentication - Asp.Net Core 2 oidc中间件在代理请求返回401后不进行质询

java - Tomcat登录后重定向到错误的url