当前位置:  开发笔记 > 后端 > 正文

如何在Django中为密码不可用的用户允许重置密码?

如何解决《如何在Django中为密码不可用的用户允许重置密码?》经验,为你挑选了1个好方法。

我有一个Web应用程序Django 1.4.3。我们允许用户以客人身份预订节目;使用电子邮件和不可用的密码(使用set_unusable_password())创建此类用户。现在,我们要允许他们重置密码。但是,Django的内置重置表格不允许使用不可用的密码为用户重置。我必须创建自己的表格吗?有哪些选择?还是我应该使用make_random_password?

身份验证项目中的相关代码-

if any((user.password == UNUSABLE_PASSWORD)
           for user in self.users_cache):
            raise forms.ValidationError(self.error_messages['unusable'])

谢谢



1> Alasdair..:

如果默认PasswordResetForm密码不可用,则默认设置不允许用户重置密码。但是,您可以继承表单的子类并覆盖执行此检查的方法。

对于Django 1.8+,请重写该get_users方法。

对于您的情况,对于Django 1.4,请重写该clean_email方法。

然后在password_reset网址格式中包含您的自定义表单,即kwarg password_reset_form

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有