You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Django Admin中多对多TabularInline的列显示名称

解决Django Admin多对多TabularInline列名翻译问题

嘿,我懂你的困扰!你已经把Admin页面大部分内容都翻译成波兰语了,但TabularInline里的Specialization列名还没同步对吧?这是因为多对多关联的through模型字段默认用的是未翻译的标签,咱们只需要两步就能搞定:

第一步:修正Inline的复数标题

你之前在SpecializationInline里把verbose_name_plural写成了单数,这会导致Inline的区块标题显示错误,先把它改成复数形式:

verbose_name_plural = 'Specjalizacje'

第二步:自定义列的显示标签

接下来要修改Inline里那个显示Specialization的列名,我们可以通过labels字典直接指定字段的翻译后标签:

labels = {
    'specialization': 'Specjalizacja',
}

完整修改后的admin.py代码

把这两处修改整合到你的代码里,最终的SpecializationInline和Admin注册代码如下:

class SpecializationInline(admin.TabularInline):
    model = Doctor.specializations.through
    verbose_name = 'Specjalizacja'
    verbose_name_plural = 'Specjalizacje'
    labels = {
        'specialization': 'Specjalizacja',
    }

@admin.register(Specialization)
class SpecializationAdmin(admin.ModelAdmin):
    list_display = ['name',]

@admin.register(Doctor)
class DoctorAdmin(admin.ModelAdmin):
    inlines = [SpecializationInline,]
    exclude = ['specializations',]

这样调整后,TabularInline里的列名就会显示成你想要的Specjalizacja,和其他翻译后的内容保持统一啦~

内容的提问来源于stack exchange,提问作者Marta Cz-C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:22:57