Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.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/22.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 为什么模型在admin Django中有父类名称_Python_Django_Django Admin_Django Users_Django Admin Actions - Fatal编程技术网

Python 为什么模型在admin Django中有父类名称

Python 为什么模型在admin Django中有父类名称,python,django,django-admin,django-users,django-admin-actions,Python,Django,Django Admin,Django Users,Django Admin Actions,我创建了这样的模型 class User(AbstractUser): login_count = models.PositiveIntegerField(default=0) class Supplier(User): company_name= models.CharField(max_length=30) company_domain=models.CharField(max_length=30) class Worker(User): ACC

我创建了这样的模型

class User(AbstractUser):
    login_count = models.PositiveIntegerField(default=0)

class Supplier(User):
    company_name= models.CharField(max_length=30)
    company_domain=models.CharField(max_length=30)
    

class Worker(User):
    ACCOUNT_TYPE = (
        ('1', 'Admin'),
        ('2', 'Regular'),
    )
    account_type = models.CharField(max_length=1, choices=ACCOUNT_TYPE)
在users.admin.py中,我有

admin.site.register(Supplier)
admin.site.register(Worker)
为什么我在Django Admin中使用所有模型的名称作为用户?而不是工人和供应商


因为
AbstractUser
是一个抽象模型,它的
类被所有子类继承

您需要为每个模型提供自己的
Meta
类,并传递
verbose\u name
verbose\u name\u复数
属性以覆盖
AbstractUser
s
Meta
类中设置的值

class Supplier(User):
    company_name = models.CharField(max_length=30)
    company_domain = models.CharField(max_length=30)

    class Meta:
        verbose_name = 'supplier'
        verbose_name_plural = 'suppliers'


class Worker(User):
    ACCOUNT_TYPE = (
        ('1', 'Admin'),
        ('2', 'Regular'),
    )
    account_type = models.CharField(max_length=1, choices=ACCOUNT_TYPE)

    class Meta:
        verbose_name = 'worker'
        verbose_name_plural = 'workers'

因为
AbstractUser
是一个抽象模型,所以它的
Meta
类被所有子类继承

您需要为每个模型提供自己的
Meta
类,并传递
verbose\u name
verbose\u name\u复数
属性以覆盖
AbstractUser
s
Meta
类中设置的值

class Supplier(User):
    company_name = models.CharField(max_length=30)
    company_domain = models.CharField(max_length=30)

    class Meta:
        verbose_name = 'supplier'
        verbose_name_plural = 'suppliers'


class Worker(User):
    ACCOUNT_TYPE = (
        ('1', 'Admin'),
        ('2', 'Regular'),
    )
    account_type = models.CharField(max_length=1, choices=ACCOUNT_TYPE)

    class Meta:
        verbose_name = 'worker'
        verbose_name_plural = 'workers'

它们可能采用用户类的详细名称,因为两者都继承自该类。 尝试这样修改:

类供应商(用户):
公司名称=models.CharField(最大长度=30)
company\u domain=models.CharField(最大长度=30)
类元:
详细名称='供应商'
班级工作人员(用户):
账户类型=(
('1','Admin'),
('2','Regular'),
)
帐户类型=模型.CharField(最大长度=1,选项=帐户类型)
类元:
详细名称='Worker'

我从中得到了它。

它们可能采用了用户类的详细名称,因为它们都继承自该类。 尝试这样修改:

类供应商(用户):
公司名称=models.CharField(最大长度=30)
company\u domain=models.CharField(最大长度=30)
类元:
详细名称='供应商'
班级工作人员(用户):
账户类型=(
('1','Admin'),
('2','Regular'),
)
帐户类型=模型.CharField(最大长度=1,选项=帐户类型)
类元:
详细名称='Worker'
我从这里得到的