django - 如何在 Django 中实现切换帐户选项
问题描述
考虑一个有公司帐户和员工帐户的应用程序。我想将员工添加为公司的管理员。然后管理员应该能够与公司切换帐户。是否可以进行切换帐户选项?我是 Django 的初学者。谁能帮我解决这个问题?
我在这里添加我的用户模型:
# Custom user
class CustomUser(AbstractUser):
""" Custom user model"""
email = models.EmailField(unique=True, validators=[EmailValidator])
is_company = models.BooleanField(default=True)
is_employee = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
slug = AutoSlugField(populate_from='username')
def __str__(self):
return f"{self.username}"
# Company user
class CompanyAccount(TimeStampedModel):
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE, related_name='company')
name = models.CharField(max_length=50, null=True, blank=True)
description = models.TextField(null=True, blank=True)
email = models.EmailField(null=True, blank=True)
website_url = models.URLField(null=True, blank=True)
industry = models.CharField(max_length=50, null=True, blank=True)
founded_year = models.PositiveSmallIntegerField(blank=True, null=True)
headquarters = models.CharField(max_length=100, null=True, blank=True)
def __str__(self):
return f"{self.name}"
# Employee user
class Employee(TimeStampedModel):
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE, related_name="profile")
first_name = models.CharField(max_length=50, null=True, blank=True)
last_name = models.CharField(max_length=50, null=True, blank=True)
city = models.CharField(max_length=100, null=True, blank=True)
country = models.CharField(max_length=100, null=True, blank=True)
job_title = models.CharField(max_length=100, null=True, blank=True)
company = models.ForeignKey(CompanyAccount, on_delete=models.CASCADE, related_name="employee")
def __str__(self):
return f"{self.user.username}"