我有一个带有特定字段的django应用程序,所以我决定创建一个新的用户模型。我正在彻底地遵循文档,但我无法将AbstractBaseUser
和BaseUserManager
延伸到csvkit。
1)为什么我需要扩展两个类来创建单个用户模型。我想知道我们在MyUserManager
和MyUser
中指定的字段是否相似
2)MyUserManager
和MyUser
或两者中的电子邮件字段here之间是否有相似之处?
在我的应用程序中,我想使用手机号码(Charfield max_length = 12)作为登录既不是电子邮件也不是用户名
3)Django提供了如何使用电子邮件创建自定义用户模型
那么我还有另一个具体的问题,我还需要在create_user
以及create_superuser
和AbstractBaseUser
模型中指定移动字段。
如果您提供带有USERNAME_FIELD
移动电话号码的摘录,那将非常有用。
我知道这些是基本的django问题,但如果你想创建一个自定义用户模型,你可能会多次遇到这些问题
答案 0 :(得分:0)
回答问题1
你需要扩展两个类,因为Django有两个用户类。一个是showModal
模型,另一个是showModal
。对于简单的任务,我们不需要修改经理类。但为了您的目的,您确实需要它。请注意,经理类没有任何字段名称,而是有两种方法。一种方法用于创建常规用户,另一种方法用于创建超级用户。使用sharedRating
等命令时会调用这些方法。
在Django文档中建议扩展用户类的最佳方法是创建另一个类以获取额外信息。请参阅this answer。
回答问题2
<{1}}课程中没有User
字段,请仔细查看。
回答问题3
如果我是你,我只会将手机号码保存在UserManager
字段中。这样,作为USERNAME_FIELD的移动设备的所有后台任务都已经完成。但是,如果您想扩展您的用户类,那么我想您必须在管理器类方法中提及移动字段,因为它们用于创建用户。
注意: - 请查看python manage.py createsuperuser
并使用它来验证您的手机号码。这将检查提供手机号码的用户是否具有正确的格式。我猜你的系统会通过短信网关API将代码作为短信发送给用户的手机。您不希望在由于用户错误而未收到的短信上浪费钱。