如何序列化使用代理的多用户模型

所以我正在设置一个具有 3 种类型的用户管理员、客户和代理的应用程序 我的模型设置是这样的

class UserManager(BaseUserManager):
    def create_user(self,email,name,password=None):
        if not email:
            raise ValueError('Users must have an email')

        user = self.model(
            email=self.normalize_email(email),name=name,)
        user.set_password(password)
        try:
            user.save(using=self._db)
        except IntegrityError:
            raise IntegrityError('A user already uses this email')

        return user

    def create_superuser(self,password=None):
        user = self.create_user(email,password=password)
        user.is_active = True
        user.is_staff = True
        user.is_superuser = True
        user.save(using=self._db)
        return user

class User(AbstractBaseUser,PermissionsMixin):
    class Types(models.TextChoices):
        COSTUMER = "CUSTOMER","Customer"
        AGENT = "AGENT","Agent"
    type = models.CharField(_('Type'),max_length=50,choices=Types.choices,default=Types.CUSTOMER)
    email = models.EmailField(_('Email of the user'),unique=True)
    name = models.CharField(_('Name of the user'),max_length=100)
    phone_number = PhoneNumberField(_('Phone number of the user'),blank=True,null=True,unique=True)
    date_joined = models.DateField(_('Date joined'),auto_now_add=True)
    last_login = models.DateTimeField(_('last login'),null=True)
    is_superuser = models.BooleanField(default=False)
    is_staff = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    
    objects = UserManager()

    username_FIELD = 'email'
    REQUIRED_FIELDS = ['name']

    def __str__(self):
        return self.email

class CustomerManager(models.Manager):
    def get_queryset(self,*args,**kwargs):
        return super().get_queryset(*args **kwargs).filter(type=User.Types.CUSTOMER)

class AgentManager(models.Manager):
    def get_queryset(self,**kwargs):
        return super().get_queryset(*args **kwargs).filter(type=User.Types.AGENT)

class Customer(User):
    '''proxy class for registering customer'''
    objects = CustomerManager()
    class Meta:
        proxy = True

    def save(self,**kwargs):
        if not self.pk:
            self.type = User.Types.CUSTOMER
        return super().save(*args,**kwargs)

class Agent(User):
    '''proxy class for registering Agent'''
    objects = AgentManager()
    class Meta:
        proxy = True

    def save(self,**kwargs):
        if not self.pk:
            self.type = User.Types.AGENT
        return super().save(*args,**kwargs)

我是 Django 的超级新手,我在 Django 和 Daniel Roy Greenfields YouTube 频道的两份独家新闻中看到了这种方法

我不知道如何将其序列化,以便我在前端有两个链接用于注册,一个用于客户,另一个用于代理

提前致谢

lk38264945 回答:如何序列化使用代理的多用户模型

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/27372.html

大家都在问