在source for django ,有一个 UserManager 类,其工作(据我所知)是根据接收到的一些参数创建用户并将它们保存到数据库中。该类使用两种方法完成此操作。一种方法create_user和一种方法_create_user,后者由前者调用。我的问题是,为什么需要两种方法?为什么不简单地拥有一个做完全相同的事情呢?像这样:
def create_user(self, username, email=None, password=None,
**extra_fields):
"""
Creates and saves a User with the given username, email and password.
"""
now = timezone.now()
if not username:
raise ValueError('The given username must be set')
email = self.normalize_email(email)
user = self.model(username=username, email=email,
is_staff=False, is_active=True,
is_superuser=False,
date_joined=now, **extra_fields)
user.set_password(password)
user.save(using=self._db)
return user
请您参考如下方法:
我想我自己找到了答案。该类还有一个 create_superuser 方法,该方法也调用 _create_user,但参数不同。因此,_create_user 的使用使我们不必将相同的功能编写两次。
