如何修改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
相关产品推荐
相关产品推荐

