Стилизация определенных строк списка изменений администратора - PullRequest
0 голосов
/ 01 октября 2009

Существует ли простой и распространенный способ применения пользовательских стилей к элементу списка изменений администратора в зависимости от его свойств?

обновление

Если быть более точным: допустим, у меня есть простой объект модели.

Foo

   field1
   field2
   field3

   @property
    property1()
   @property
    property2()

ModelAdmin.list_display определяется как подмножество доступных полей, поэтому не каждый атрибут (поле / свойство) отображается в таблице списка изменений.

Я бы хотел применить пользовательский класс CSS к строке объекта при выполнении определенного условия, например: если foo_instance.property1 равно True, то добавьте класс bar к соответствующему элементу tr.

Ответы [ 3 ]

0 голосов
/ 01 октября 2009

Что именно вы подразумеваете под «изменить элемент списка» и «его свойства»? Используя селекторы CSS 2 или CSS 3, вы можете делать некоторые вещи. В противном случае вы могли бы легко сделать это с помощью jQuery (или чего-либо еще). Поскольку это просто презентация, я думаю, что это было бы самое чистое решение.

0 голосов
/ 10 января 2014

Старый вопрос, но если вы наткнетесь на него, вам могут помочь следующие советы.

Вы можете использовать django-liststyle , чтобы настроить строки списка изменений администратора.

Реализовать ваш пример довольно просто:

class FooAdmin(admin.ModelAdmin, ListStyleAdminMixin):
    ...
    def get_row_css(self, obj, index):
        if obj.property1:
            return 'bar'
        return ''

Django Suit (не бесплатно) также предлагает настройку стиля "Список атрибутов строки и ячейки"

0 голосов
/ 01 октября 2009

Теперь скопируйте шаблон admin / base_site.html из каталога шаблонов администратора Django по умолчанию (django / contrib / admin / templates) в подкаталог admin любого каталога, который вы используете в TEMPLATE_DIRS. Например, если ваш TEMPLATE_DIRS содержит «/ home / my_username / mytemplates», как указано выше, скопируйте django / contrib / admin / templates / admin / base_site.html в /home/my_username/mytemplates/admin/base_site.html. Не забудьте этот административный подкаталог.

Обратите внимание, что любой из стандартных шаблонов администратора Django может быть переопределен. Чтобы переопределить шаблон, просто сделайте то же самое, что вы сделали с base_site.html - скопируйте его из каталога по умолчанию в свой пользовательский каталог и внесите изменения.

из учебник Джанго

...