【发布时间】:2021-12-02 12:22:34
【问题描述】:
我想在我的 Django 项目中创建两种类型的用户,即客户和公司。两个用户在注册过程中具有不同的属性。 这是我的用户 odel.py 文件 -
class UserManager(BaseUserManager):
use_in_migrations = True
def _create_user(self, email, password, **extra_fields):
if not email:
raise ValueError('The given email must be set')
email = self.normalize_email(email)
user = self.model(email=email, **extra_fields)
user.set_password(password)
user.save(using=self._db)
return user
def create_user(self, email, password=None, is_staff=False, is_superuser=False, **extra_fields):
"""Create and save a regular User with the given email and password."""
extra_fields.setdefault('is_staff', is_staff)
extra_fields.setdefault('is_superuser', is_superuser)
return self._create_user(email, password, **extra_fields)
class User(AbstractUser):
"""User model."""
username = None
last_name = None
first_name = None
name = models.CharField(max_length=100)
email = models.EmailField(_('email address'), unique=True)
contact = models.CharField(max_length=100)
USERNAME_FIELD = 'id'
REQUIRED_FIELDS = ['contact']
objects = UserManager()
@receiver(post_save, sender=settings.AUTH_USER_MODEL)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
Token.objects.create(user=instance)
我想为这两个用户创建不同的注册页面。我几乎到处搜索,但找不到合适的解决方案。有人可以帮忙吗?
【问题讨论】:
标签: django django-models django-rest-framework django-users django-custom-user