Django admin и предзаполнение полей в списке объектов
Имеется Django 4.0 python 3.10.
В моделях есть интовое поле "Show Average" с дефолтным значением = 0, и есть калькулятор расчитывающий это поле для каждого объекта в БД. Задача такая: в админке, при просмотре таблицы всех объектов, пересчитать и переписать значения этого поля у всех объектов.
Уменя получилось реализовать задуманное через def formfield_for_dbfield, но для конкретного объекта, а надо для всех...
РЕШЕНИЕ
В списке отображаемых полей нужно добавить поле которое нам требуется, например new_filed
ADMIN.PY
list_display: Sequence[str] = (
'get_new_filed_foo',
)
Далее используем декоратор @admin с помощью которого указываем что результат функции будет отображен как поле.
@admin.display(description='Название для нового столбца')
def get_new_filed_foo(self, obj: model) -> str:
result = 2+2
return f'{result}'
Теперь в списке всех объектов для каждого объекта появится еще один столбец с названием "Название для нового столбца", и для каждой троки в этом стобце будет отображаться результат "get_new_filed_foo"
