Администратор Django: Изменить отображаемое значение ключа - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть модель, которая включает в себя ключ "service_id" и значения, хранящиеся в базе данных, похожи на "10001", я хочу добавить метод к странице администратора, который вместо отображения идентификатора отображает пользовательское значение, например "Мойка автомобилей".».

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019

Я думаю, вам нужно создать настраиваемое поле , которое будет добавлено в ваш list_display

from django.contrib import admin

@admin.register(MyModelClass)
class MyModelClassAdmin(admin.ModelAdmin):
    list_display = ('my_field')

    def my_field(self, obj):
        return obj.description().title()
    my_field.short_description = "My field" 

. Вы можете изменить значение, возвращаемое методом my_field, по своему усмотрению.(учтите, что вы можете использовать экземпляр obj).

0 голосов
/ 13 февраля 2019

Создайте класс администрирования, следующий за

class ModelclassNameAdmin(admin.ModelAdmin):
    list_display = ('service__name', [other fields])

, в нем для отображения списка используйте двойное подчеркивание __ для доступа к полю внутри внешнего ключа, например service__name

, и при регистрации модели добавьтеadmin как второй аргумент.

admin.site.register(ModelclassName, ModelclassNameAdmin)
...