为什么模型在管理 Django 中有父 class 名称
Why are models having there parent class names in admin Django
我创建了这样的模型
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
class 被所有子 class 继承,docs.
您需要为每个模型提供自己的 Meta
class 并传递 verbose_name
和 verbose_name_plural
属性以覆盖 AbstractUser
中设置的值s Meta
class
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'
他们可能使用了用户 class 的详细名称,因为它们都继承自它。
尝试这样修改:
class Supplier(User):
company_name= models.CharField(max_length=30)
company_domain=models.CharField(max_length=30)
class Meta:
verbose_name = 'Supplier'
class Worker(User):
ACCOUNT_TYPE = (
('1', 'Admin'),
('2', 'Regular'),
)
account_type = models.CharField(max_length=1, choices=ACCOUNT_TYPE)
class Meta:
verbose_name = 'Worker'
我从这个 article.
得到的
我创建了这样的模型
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
class 被所有子 class 继承,docs.
您需要为每个模型提供自己的 Meta
class 并传递 verbose_name
和 verbose_name_plural
属性以覆盖 AbstractUser
中设置的值s Meta
class
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'
他们可能使用了用户 class 的详细名称,因为它们都继承自它。 尝试这样修改:
class Supplier(User):
company_name= models.CharField(max_length=30)
company_domain=models.CharField(max_length=30)
class Meta:
verbose_name = 'Supplier'
class Worker(User):
ACCOUNT_TYPE = (
('1', 'Admin'),
('2', 'Regular'),
)
account_type = models.CharField(max_length=1, choices=ACCOUNT_TYPE)
class Meta:
verbose_name = 'Worker'
我从这个 article.
得到的