【问题标题】:Will the django built in password reset views work with a custom user that inherits from AbstractBaseUser?django 内置的密码重置视图是否可以与继承自 AbstractBaseUser 的自定义用户一起使用?
【发布时间】:2020-11-08 11:56:16
【问题描述】:

我要构建一个自定义 django 用户和一个自定义登录和注册视图,我想知道我是否也应该构建一个自定义密码重置视图。

【问题讨论】:

    标签: python django django-models django-views django-users


    【解决方案1】:

    来自documentation

    如果您对 Django 的 User 模型非常满意,但想添加一些额外的配置文件信息,您可以继承 django.contrib.auth.models.AbstractUser 并添加您的自定义配置文件字段

    这意味着AbstractUser 将继承可以应用于User 模型的所有功能,所以我相信,只要您不删除与密码相关的字段,ResetPasswordView 将工作。

    查看此问题的另一种方法是通过身份验证视图。如果您的自定义 AbstractUser 模型可以通过默认登录/注册身份验证视图(甚至通过管理仪表板进行更改)获得,我认为您的模型不能采用 PasswordReserView 没有任何问题。

    我已经多次这样做了。虽然我从未重置过我的用户密码,但我可以保证,只要您不修改 usernameemailpassword 字段(您可以尝试,但这可能会毁掉一切),默认视图将起作用)

    【讨论】:

    • 我在自定义用户模型中要做的是将USERNAME_FIELD重置为电子邮件EmailField(),用户名将是普通CharField()我会打电话它也是全名,内置的密码重置视图是否适用于此?感谢您的帮助@crimsonpython24
    • 请回复人 我有一个项目的最后期限,我想开始创建新的用户模型,我不想用故障模型弄乱数据库和整个代码。
    • 我出去玩皮卡游戏,所以我不在屏幕前。对于您的问题,您可以参考this thread 了解如何覆盖视图。由于您已经修改了这些字段,因此您不能指望默认视图再起作用。
    猜你喜欢
    • 1970-01-01
    • 2021-08-20
    • 2019-01-16
    • 2023-02-09
    • 2015-02-12
    • 1970-01-01
    • 2013-12-16
    • 2013-06-20
    • 1970-01-01
    相关资源
    最近更新 更多