gpt4 book ai didi

Django - 从用户模型中删除用户名

转载 作者:行者123 更新时间:2023-12-01 11:42:16 26 4
gpt4 key购买 nike

为了在 Django 1.5.x 中创建新的用户模型,有两种方法:

  • 继承AbstractUser class 是您获得的默认用户模型,这样您就可以使用您想要的任何属性对其进行扩展。但是,如果您想删除 任何领域,技术上都是可行的,但 not recommended ;即使可以做到,我相信也是违反 OOP 原则的。所以如果你想改变当前的用户模型,有第二种方法。
  • 继承AbstractBaseUser , 来自 looking at the code提供非常基本的功能。除非 ,否则您将错过权限、配置文件检索和绝对 url 构造的所有优点。你复制它来自默认的 Django 用户模型。

  • 以上是我对情况的理解。如果我错了,请纠正我,但这并不意味着如果我想简单地删除 username因为我根本不需要它,所以我必须复制粘贴框架中提供的模型代码并从 AbstractBaseUser 继承。和 PermissionsMixin ?对于这么简单的事情,这种方法在我看来并不是很漂亮,而且看起来有点奇怪,因为我很确定引入自定义用户模型主要是因为 email 的流行用例|字段作为用户标识符而不是 username .

    请你的想法(和更正)。

    最佳答案

    如果你查看 django.contrib.auth.models 的源代码文件然后你会看到 AbstractUser 的定义类(class)相当短,开头是这样的:

    class AbstractUser(AbstractBaseUser, PermissionsMixin):
    ...

    它继承自 AbstractBaseUserPermissionMixin .您可以定义您的自定义模型并从上述类继承它以获得权限支持。如果您想要所有其他模型字段,那么是的,您需要复制它们,但这也是自定义内容以满足您的需求的机会。

    关于Django - 从用户模型中删除用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18769729/

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