如何更改 admin.py 中 list_display 中的函数生成的字段的名称

How to change the name of a field generated with a function in list_display in admin.py

我在 admin.py 中有一个 modelAdmin。我想显示我从模型中的函数生成的值。这是代码:

admin.register(Salary)
class Salary(admin.ModelAdmin):
    list_display=('Category','BasicPA','BasicBM','Grade','Step','total')
    def BasicBM(self,instance):
        return instance.get_BasicBM()
    def total(self,instance):
        return instance.total()
    fieldsets =(
        ('Grade Salary Information',{
            'fields':('Category','BasicPA','RentP','TransportP','MealG','UtilityP','WeighInP','CSAP','TSAP','CallG','HazardG','RuralAllG','ShiftG','DomesticLawG','StateCounselG','Grade','Step')
            }),
        )

这有效,但它在 list_display 标题上显示 'BasicBM',我想将其更改为 'Basic B/M'。我无法更改它,因为我认为 list_display 列表中的字符串名称必须与 admin.py 中的 class Salary 中的函数名称相匹配才能正常工作以及名称函数的 of 不能包含“/”或空格。请问,我该如何实现?提前致谢!

看看显示装饰器。我从未使用过它,但它似乎可以满足您的需求。

https://docs.djangoproject.com/en/3.2/ref/contrib/admin/#django.contrib.admin.display

@admin.display(
    description='Basic B/M',
)
def BasicBM(self,instance):
        return instance.get_BasicBM()