在Django中扩展AbstractUser创建自定义用户模型API
每个新的Django项目都应该使用一个自定义的用户模型。Django官方文档说这是 “强烈推荐”,但我要更进一步,毫不犹豫地说。如果你不在前面使用自定义用户模型,那你就直接疯了。
为什么在Django中需要一个自定义的用户模型?
当你用一个自定义的用户模型开始你的项目时,停下来考虑这是否是你项目的正确选择。将所有的用户相关信息保存在一个模型中,就不需要额外的或更复杂的数据库查询来检索相关模型。另一方面,在一个与你的自定义用户模型有关系的模型中存储特定应用的用户信息可能更合适。这允许每个应用程序指定它自己的用户数据要求,而不可能与其他应用程序的假设冲突或破坏。这也意味着你会尽可能地保持你的用户模型的简单性,专注于认证,并遵循Django期望自定义用户模型满足的最低要求。
所以我想我们很清楚为什么在django中需要一个自定义用户模型,在这篇文章中我们将学习如何在django中创建自定义用户模型和它的api,现在让我们开始编码部分。
搭建–
- 为我们的代码创建并导航到一个名为用户的专用目录。
-
新建一个名为login的Django项目
-
做出一个新的应用程序的用户
-
启动本地网络服务器
命令–
现在,在settings.py中添加以下代码。
在这之后,我们需要创建一个自定义的用户模型。为此,改变你的models.py文件,如下所示。在这里,我们正在扩展AbstractUser,并将认证凭证改为Email。我们还在我们的自定义用户中添加一些额外的字段
在这之后,我们需要把这些变化也保存到管理面板上。将这段代码添加到admin.py中
现在在你的应用程序中创建一个serializers.py文件。在你的serializers.py中添加以下代码
现在在你的应用程序中创建api/urls.py文件并添加以下几行
现在,在你的项目的login/urls.py中添加以下代码
我们已经完成了自定义用户模型的设置。现在将这些变化保存到你的项目中,并通过CLI进行迁移
现在创建一个超级用户
现在运行服务器,用。
并通过该URL。你可以在管理面板中检查你的自定义用户
输出–