user = self.model(useremail=BmUserManager.normalize_email(useremail))" 有什么用?是用来创建新的自定义用户吗?
class BmUserManager(BaseUserManager):
def create_user(self, useremail, display_name, password=None):
if not useremail:
raise ValueError('Users must have an email address')
user = self.model(useremail=BmUserManager.normalize_email(useremail))
user.display_name = display_name
user.email = useremail
user.set_password(password)
user.save(using=self._db)
return user
self.model(useremail=BmUserManager.normalize_email(useremail)) 这段代码的意思是,使用一个叫做 self.model 的东西来创建一个新的对象,并且给这个对象的 useremail 属性赋值。这里的 useremail 是通过 BmUserManager.normalize_email(useremail) 这个方法处理过的,目的是把用户输入的邮箱地址标准化,确保它的格式是正确的。简单来说,就是把用户的邮箱整理一下,然后用这个整理好的邮箱来创建一个新的对象。
2 个回答
0
这里的 self.model 指的是你正在使用的模型(类似于自定义用户)。而 BaseUserManager.normalize_email 这个方法的作用是把电子邮件中的域名转换成小写字母。举个例子,如果你的邮箱是 "Amanmishra1321@GMAil.com",那么它会把这个邮箱转换成 "Amanmishra1321@gmail.com"。
6
模型管理器的 model
属性其实就是一个指向模型类的引用,这个管理器是为这个模型类创建的。在这个情况下,它指的是将会使用这个管理器的用户模型。