Как реализовать несколько типов пользователей с помощью Django? - PullRequest
1 голос
/ 08 мая 2020

Я хочу создать модель Django, например

user_types = (("Agent", "Agent"), ("Branch", "Branch"), ("Company", "Company"))

class User(models.Model):
    email = models.EmailField(db_index=True, unique=True)
    username = models.CharField(db_index=True, max_length=255, unique=True)
    user_type = models.CharField(max_length=100, choices=user_types, blank=False)

, и если пользователь определяет user_type для хранения этих данных поля, должно появиться дополнительное поле, например:

   if user_type is Agent then:
        agent_code
        agent_name
    if user_type is Branch then:
        Branch_code
        Branch_name
        Branch_Id
    if user_type is Company then:
        Company_code
        Company_name
        Company_Id

Is есть ли хороший способ справиться с этой моделью?

или мне нужно определить все необходимые поля в разных моделях и классах User class.

например:

class ReqData(models.Model):
    user_type = models.CharField(max_length=100, choices=user_types, blank=False)
    agent_code = models.CharField(max_length=50, blank=False)
    branch_code = models.CharField(max_length=50, blank=False)
    branch_name = models.CharField(max_length=50, blank=False)
    ....
    ....


class User(models.Model, ReqData):
    ....
    ....
...