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)
是一样的。您可以在模型字段中定义默认值,然后在创建实例时无需再次传递默认值。看起来您在这里做的工作太多了。我真的不明白你说的经理一步是什么意思,但你不需要做任何事情。这些都是什么方法?我只是按照顶部链接的文档进行操作。