我正在使用 django 1.1。
它说的 is_active 标志上的文档
http://docs.djangoproject.com/en/1.1/topics/auth/#topics-auth
这不控制用户是否可以登录。身份验证路径中的任何内容都不会检查 is_active 标志,因此如果您想基于 is_active 为 False 拒绝登录,则由您自己检查登录看法。但是,使用 has_perm() 之类的方法进行权限检查确实会检查此标志,并且对于非活动用户将始终返回 False。
我正在使用 django-registration(最新的 0.8 alpha)并使用所有默认后端。django-registration 的整个前提是基于 is_active 标志。即它只有在用户激活后才被设置。但是,我可以看到,当用户登录时,它正在使用 django.contrib.auth.views.login。我可以从 auth_urls.py 中的代码中看到这一点。
当用户注册但尚未激活时,我希望显示一条消息,内容类似于“您尚未激活您的帐户”
目前默认行为是表单的错误消息,“用户名和密码不匹配”
我也在视图中使用登录装饰器
@login_required
我的问题是:
编辑:谢谢詹姆斯和亨利。我不认为我很擅长描述我的问题。我已经重做了这个。
- django 文档说 is_active 在登录用户时不用作决定因素。这显然不是这种情况。自己试试。我无法弄清楚这在代码中发生的位置。有人知道吗?据我所知,它不会发生在 django-registration 和 django.contrib.auth 中。
- 为了显示我上面描述的错误消息,对我来说最好的方法是什么?请记住我正在使用 django-registration,所以很多管道已经完成。我宁愿不修改这个或重写一切。如果可能的话,我正在寻找一个....“优雅”的解决方案。
提前致谢
关于 Q1,