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
sMeta
类中设置的值
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
sMeta
类中设置的值
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'
我从这里得到的