Создание пользовательских полей отображения в Django Admin (которых нет в models.py) - PullRequest
0 голосов
/ 14 января 2020

У меня есть два поля в models.py

numberOfUsers = IntegerField()
numberOfUserCredits = IntegerField()

В Django admin, вместо просмотра двух столбцов с

list_display = ['numberOfUsers', 'numberOfUserCredits']

Я бы вместо этого хотелось бы немного очистить это и объединить эти два поля для более простого просмотра:

str(numberOfUsers) + '/' + str(numberOfUserCredits)

Как я могу создать подобное поле в Django admin? Я мог бы создать новое поле в models.py, которое автоматически создает это поле при сохранении модели, но мне интересно, есть ли более простой способ сделать это go.


Я нашел аналогичный вопрос уже задавался, но ответ ниже был именно тем, что я искал.

1 Ответ

2 голосов
/ 14 января 2020

Вы можете добавить его в свой класс ModelAdmin примерно следующим образом, также я бы предложил использовать f строк вместо конкатенации

class SomeAdmin(admin.ModelAdmin):
    list_display = (..., 'user_field')

    def user_field(self, obj):
        return f'{obj.numberOfUsers}/{obj.numberOfUserCredits}'
    user_field.short_description = 'userShort'
...