Python 如何使用Django实现多个用户类型?
我想创建一个Django模型,如Python 如何使用Django实现多个用户类型?,python,django,django-models,model,Python,Django,Django Models,Model,我想创建一个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, uniqu
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)
如果用户定义用户类型来存储这些字段数据
应该有一些额外的字段,如:
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
有什么好办法处理这种模式吗
或者我必须在不同的modelsClass和该类用户类中定义所有必需的字段
比如:
这里已经回答了这个问题:我认为解决您的问题的一个可能的方法是为每个用户类型创建一个模型类,其中包含各自的额外字段和用户模型的OneToOneField。这里已经回答了这个问题:我认为解决您的问题的一个可能的方法是为每个用户创建一个模型类键入相应的额外字段和用户模型的OneToOneField。
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):
....
....