Django Admin:如何覆盖模型verbose_name?

jrv*_*tti 8 django django-admin

我有两个模型(国家和州),我只有一个ModelAdmin for Country,有一个TabularInline for State.

class StateInline(admin.TabularInline):
    model = State

class CountryAdmin(admin.ModelAdmin):
    fieldsets = [
        (None, {'fields': ['name']}),
    ]
    inlines = [StateInline]

admin.site.register(Country, CountryAdmin)
Run Code Online (Sandbox Code Playgroud)

如何覆盖verbose_nameCountry模型的Meta属性?我想将菜单中的表单重命名为"国家/地区",而不仅仅是"国家/地区"?

lal*_*alo 11

使用Meta

在你的模型中:

from django.utils.tranlation import gettext_lazy as _

class Country(models.Model):
    # your fields
    class Meta:
        verbose_name = _("Country / State")
        verbose_name_plural = _("Countries / States")
Run Code Online (Sandbox Code Playgroud)

  • 我避免使用这种方法来猜测模型的verbose_name是在管理员菜单中的其他地方使用的.但我会使用它,而我没有更好的解决方案.理想的解决方案是ModelAdmin具有`verbose_name`覆盖,就像TabularInline一样.谢谢你回答...... (2认同)