这不控制用户是否可以登录。身份验证路径中没有任何内容检查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
我的问题是:
编辑: 感谢James和Henry。我觉得我并没有很好地描述我的问题。我重新做了一遍。
- Django文档说,在登录用户时,is_active不用作决定因素。但很明显这不是事实。你可以自己试试。我无法找出代码中发生这种情况的位置。有人知道吗?据我所见,它既没有在django-registration中发生,也没有在django.contrib.auth中发生。
- 为了显示上面描述的错误消息,我应该如何做才能达到最佳效果?请记住,我正在使用django-registration,因此已经完成了很多工作。如果可能的话,我不想修改或重写所有内容。如果可能的话,我正在寻找一个......“优雅”的解决方案。
提前感谢
关于问题1,