使用ModelForm中的manager方法创建实例

时间:2015-02-02 17:12:42

标签: django django-models django-forms

我有一个非常简单的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

由于

1 个答案:

答案 0 :(得分:0)

表单不是创建用户的唯一方法。 UserManager.create_user()命令中使用了manage.py createsuperuser方法。