Как изменить имя поля, созданного с помощью функции в list_display в admin.py
у меня есть modelAdmin
в admin.py. я хочу отобразить значение, которое я сгенерировал из функции в модели. вот код:
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')
}),
)
Это работает, но он показывает 'BasicBM' в заголовке list_display
, а я хочу изменить его на 'Basic B/M'. Я не могу изменить его, потому что я думаю, что имя строки в списке list_display
должно соответствовать имени функции в классе Salary в admin.py, чтобы это работало, а имя функции не может содержать '/' или пробелы. пожалуйста, как мне этого добиться? Заранее спасибо!
Посмотрите на декоратор отображения. Я никогда не использовал его, но, похоже, он делает то, что вы хотите.
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()