我有一个非常简单的ModelForm
用于创建新用户(几乎完全基于股票UserCreationForm
。我的User
模型有自己的经理,其{{1} }方法,用于创建新实例,设置密码,退出简报,以及执行其他内务管理。
create_user
如果表单将成为用户创建的网关,那么拥有自定义创建方法不是一个好的设计吗?是否应将所有的房屋搬迁转移到表格中,例如,转移到class UserManager(BaseUserManager):
def create_user(self, username, password=None, email=None, save=True):
"""
Creates and saves a User with the given username, password
and email
"""
user = self.model(
username=username,
email=self.normalize_email(email)
)
user.set_password(password)
user.save(using=self._db)
user.notificationoptout_set.create(notification_type=const.NOTIFICATION_TYPE_NEWSLETTER)
if save:
user.save()
return user
class User(AbstractBaseUser, PermissionsMixin):
# ...
objects = UserManager()
方法?类似的东西:
save
由于
答案 0 :(得分:0)
表单不是创建用户的唯一方法。 UserManager.create_user()
命令中使用了manage.py createsuperuser
方法。