Я ошибся, есть другая альтернатива, использующая только приложение администратора Django.
В admin.py для вашего приложения вы можете определить средство визуализации для содержимого ячейки таблицы.Вот вариант для моей библиотеки фильмов:
class FilmAdmin(admin.ModelAdmin):
def film_status(self, obj):
if obj.status() != 'active':
return '<div style="width:100%%; height:100%%; background-color:orange;">%s</div>' % obj.status()
return obj.status()
film_status.allow_tags = True
list_display = ('id', 'title', 'film_status')
admin.site.register(Film, FilmAdmin)
Здесь я создал имя поля film_status
, которого нет в модели Film, и определил его как метод FilmAdmin
,Он получает предмет для каждой строки.Мне пришлось сообщить рендереру allow_tags
, что говорит приложению администратора не "сохранять" содержимое HTML.
Это не заполнит всю ячейку, так как сама ячейка имеет некоторый отступ.Будет заполнена только та часть ячейки, которую может заполнить ваше приложение (как определено таблицей стилей администратора).Но этого достаточно для моих целей.
Вот, пожалуйста.Два совершенно разных, но полезных метода для украшения содержимого ячейки в списке администратора Django.