Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用Django实现多个用户类型?_Python_Django_Django Models_Model - Fatal编程技术网

Python 如何使用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

我想创建一个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)
如果用户定义用户类型来存储这些字段数据 应该有一些额外的字段,如:

   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):
    ....
    ....