Динамическое создание пользователей в django
Я создаю веб-приложение со следующими пользователями,
- National Director
- Regional Director
- Project Coordinator
- Agent
Ожидаемый результат: Национальный директор должен иметь возможность создать регионального директора, региональный директор должен иметь возможность создать координатора проекта, а координатор проекта должен иметь возможность создать агентов.
Вопрос: Как я должен сделать представления и формы для достижения этого?
#Модели
class User(AbstractUser):
pass
class National_Director(models.Model):
GENDER = (
('Male', 'Male'),
('Female', 'Female'),
)
user = OneToOneField(User, null=True, blank=True, on_delete=models.SET_NULL)
gender = models.CharField(max_length=20, null=False, blank=False, choices=GENDER)
id_no = id_no = models.CharField(max_length=150, null=False, blank=False, unique=True)
address = models.TextField(null=False, blank=False)
created_at = models.DateTimeField(auto_now_add=True)
class Regional_Director(models.Model):
GENDER = (
('Male', 'Male'),
('Female', 'Female'),
)
user = OneToOneField(User, null=True, blank=True, on_delete=models.SET_NULL)
REGION = (
('North', 'Northern Region'),
('East', 'Eastern Region'),
('West', 'Western Region'),
('South', 'Southern Region'),
)
region = models.CharField(max_length=20, null=False, blank=False, choices=REGION)
gender = models.CharField(max_length=20, null=False, blank=False, choices=GENDER)
national_director = models.ForeignKey(National_Director, null=True, blank=True,
on_delete=SET_NULL)
id_no = id_no = models.CharField(max_length=150, null=False, blank=False, unique=True)
address = models.TextField(null=False, blank=False)
created_at = models.DateTimeField(auto_now_add=True)
class Coordinator(models.Model):
GENDER = (
('Male', 'Male'),
('Female', 'Female'),
)
user = OneToOneField(User, null=True, blank=True, on_delete=models.SET_NULL)
regional_director = models.ForeignKey(Regional_Director, null=True, blank=True,
on_delete=SET_NULL)
region = models.CharField(max_length=15, null=True, blank=True)
id_no = id_no = models.CharField(max_length=150, null=False, blank=False, unique=True)
address = models.TextField(null=False, blank=False)
gender = models.CharField(max_length=20, null=False, blank=False, choices=GENDER)
created_at = models.DateTimeField(auto_now_add=True)
class Agent(models.Model):
GENDER = (
('Male', 'Male'),
('Female', 'Female'),
)
user = OneToOneField(User, null=True, blank=True, on_delete=models.SET_NULL)
project_coordinator = models.ForeignKey(Coordinator, null=True, blank=True,
on_delete=SET_NULL)
region = models.CharField(max_length=15, null=True, blank=True)
id_no = id_no = models.CharField(max_length=150, null=False, blank=False, unique=True)
address = models.TextField(null=False, blank=False)
gender = models.CharField(max_length=20, null=False, blank=False, choices=GENDER)
created_at = models.DateTimeField(auto_now_add=True)