Django Admin: Как установить цвет фона для поля данных - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть поле данных выбора, и на странице администратора я хочу выделить его значение цветом фона: ДА = зеленый НЕТ = красный

Я могу установить цвет фона для функционального поля (см. также изображение):

fields = ['_kw', 'status']
readonly_fields = ['_kw']  
def _kw(self, obj):   
    return mark_safe('<span class="{}">{}</span>'.format(obj.status, obj.kw))    

class Media:   
    css = { 'all': ('myapp/admin.css',) }

Но я не знаю, как этого добиться с помощью поля данных. Любые идеи? Если возможно, я не хочу настраивать шаблон администратора или использовать стороннее приложение.

моя страница администратора

1 Ответ

0 голосов
/ 01 апреля 2020

Добавьте следующее в файл models.py внутри нужного класса

no = 'NO'
perhaps = 'PERAPHS'
yes = 'YES'
STATUS= (
        (no, 'NO'),
        (perhaps, 'PERAPHS'),
        (yes, 'YES'),
        )

А затем в свой admin.py

def _kw(self, obj):
    colors = {
        'YES': 'green',
        'PERAPHS': 'yellow',
        'NO': 'red',
    }
    return format_html(
        '<span style="background-color:{};">{}</span>',
        colors[obj.status],
        obj.status,
    )
...