Python 如何向Django用户添加属性并公开注册它们?

Python 如何向Django用户添加属性并公开注册它们?,python,django,python-2.7,django-1.7,Python,Django,Python 2.7,Django 1.7,我一直在阅读文档: 我对继承AbstractBaseUser的用户类有相当的了解。您只需创建要添加的其他变量,并将它们作为字符串添加到必填字段中 是否需要这些功能,特别是是否有\u perm,是否有\u模块\u perms,以及是否需要\u人员 变量是否处于活动状态和是否需要管理或者它们只是示例 至于BaseUserManager,我有点困惑。我创建了一个函数,它从上面获取我的user类的每个变量/属性。大约有10个属性 然后是这样的: user = self.model( email=

我一直在阅读文档:

我对继承
AbstractBaseUser
的用户类有相当的了解。您只需创建要添加的其他变量,并将它们作为字符串添加到
必填字段中

  • 是否需要这些功能,特别是
    是否有\u perm
    是否有\u模块\u perms
    ,以及
    是否需要\u人员

  • 变量
    是否处于活动状态
    是否需要管理
    或者它们只是示例

    至于
    BaseUserManager
    ,我有点困惑。我创建了一个函数,它从上面获取我的
    user
    类的每个变量/属性。大约有10个属性

    然后是这样的:

    user = self.model(
        email=self.normalize_email(email),
        date_of_birth=date_of_birth,
        )
    user.set_password(password)
    user.save(using=self._db)
    return user
    
  • 我不确定什么是
    self.model()
    ,但从外观上看,我应该从函数和用户属性中设置每个参数。像这样

    user = self.model(
    email=self.normalize_email(email),
    variable2=variable2,
    variable3=variable3,
    variable4=variable4,
    variable5=variable5,
    variable6=variable6,
    variable7=variable7,
    )
    

  • 具有_perm
    处于活动状态
    ,等用于Django auth、Django admin和其他一些第三方库(如社交身份验证库)。如果您确定不会使用其中任何一个,那么在没有这些变量/函数的情况下定义用户是可行的

    self.model
    指经理分配给的模型。例如:

    class CustomManager(models.Manager): pass
    
    class Foo(models.Model):
        objects = CustomManager()
    
    class Bar(models.Model):
        objects = CustomManager()
    

    然后
    Foo.objects.model
    等于
    Foo
    Bar.objects.model
    等于
    Bar
    。因此,对于Foo的经理来说,
    self.model(**kwargs)
    Foo(**kwargs)
    是一样的。您可以在模型字段中定义默认值,然后在创建实例时无需再次传递默认值。

    看起来您在这里做的工作太多了。我真的不明白你说的经理一步是什么意思,但你不需要做任何事情。这些都是什么方法?我只是按照顶部链接的文档进行操作。