gpt4 book ai didi

python - 如何更改默认的 django 用户模型以满足我的需要?

转载 作者:太空狗 更新时间:2023-10-29 17:41:03 26 4
gpt4 key购买 nike

默认的 Django 的 User 模型有一些我并不真正需要的字段和验证规则。我想让注册尽可能简单,即需要电子邮件或用户名或电话号码——所有这些都是唯一的,因此可以作为用户标识符。

我也不喜欢在 Django 用户模型中验证的用户名的默认字符集。我想在那里允许任何角色 - 为什么不呢?

我之前使用 user-profile django 应用程序向用户添加配置文件 - 但这次我宁愿使类最小化。但我仍然想使用 User 类,因为它为我提供了一种简单的方法来限制网站的某些部分仅供登录用户使用。

我该怎么做?

最佳答案

与其直接修改 User 类或进行子类化,不如重新调整现有字段的用途。

对于一个站点,我使用“first_name”字段作为用户的“公开显示的名称”,并将该名称的一个 slugified 版本填充到“username”字段中(用于 URL)。我编写了一个自定义身份验证后端,允许人们使用他们的“公共(public)名称”或他们的电子邮件地址登录,并且我在注册时强制执行这两者的唯一性。这与其他可重复使用的应用程序配合得很好,并且不会引入额外的表格或查询。

对于另一个站点,我根本不需要用户名,只需要唯一的电子邮件。为了满足 Django 对唯一用户名的需求,我只是对电子邮件地址进行哈希处理并将其用作用户名(您必须对哈希进行 base64 编码以将其压缩到 30 个字符以下)。自定义身份验证后端以允许使用电子邮件登录。

如果向后兼容性不是问题,我很乐意看到对 django.contrib.auth 和用户模型进行大量改进,使它们更加灵活。但是,在当前的限制条件下,您可以通过一点创造力做很多事情。

关于python - 如何更改默认的 django 用户模型以满足我的需要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/896421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com