【发布时间】:2026-01-16 19:30:01
【问题描述】:
我有两个 Django 3.0 模型,其中一个是另一个的子类:
# models.py
class BaseCategory(models.Model):
class Meta:
verbose_name_plural = "categories"
class Category(BaseCategory):
# fields 'n' stuff
只有 Category 模型在 Admin 中注册
# admin.py
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
# stuff here
在 Admin 中,Category 模型被标记为“类别”,尽管它应该从 BaseCategory 继承 Meta 内部类及其 verbose_name_plural 属性。实际上,如果我将相同的代码复制到Category 模型中,
# models.py
class Category(BaseCategory):
class Meta:
verbose_name_plural = "categories"
# fields 'n' stuff
模型在管理员中正确标记为“类别”。这表明Category类没有继承BaseCategory的Meta内部类。
为什么子类不继承Meta 内部类?是否有另一种方法让我只指定一次verbose_name_plural,而不是将完全相同的代码复制到BaseCategory 的每个孩子中?
【问题讨论】:
标签: django inheritance django-models