Как исправить / установить ширину столбца в таблице списка изменений моделмина django при добавлении фильтра list_filter?
Я работаю над улучшением admin.py в проекте django, и хотя я не совсем удивлен тем, как таблица выходит с тремя полями в list_diplay, по крайней мере это лучше, чем просто получить список объектов по умолчанию с одним столбец, охватывающий всю страницу...
Во всяком случае, я спрашиваю, почему, если это:
class FieldAdmin(admin.ModelAdmin):
list_display = ('name', 'label', 'standard', )
выглядит так:
Когда я добавляю list_filter, вот так:
class FieldAdmin(admin.ModelAdmin):
list_display = ('name', 'label', 'standard', )
list_filter = ['standard',]
Почему это выглядит так?
Есть ли способ заставить столбцы повторно расти, чтобы заполнить ширину, как это было до добавления фильтра? Я читал документы и гуглил, но это не похоже на встроенный? В проекте, над которым я работаю, сейчас используется django 1,2,3, final.
FWIW, CSS, который вызывает это здесь:
.change-list .filtered table, .change-list .filtered .paginator,
.filtered #toolbar, .filtered div.xfull {
margin-right: 160px !important;
width: auto !important;
}
Отключение спецификации стиля ширины исправляет это, но я бы предпочел сделать все так, как это делает django, если он есть - я надеялся, что, возможно, есть способ настроить представление фильтра из класса FieldAdmin?
1 ответ
Вы можете сослаться на это: https://docs.djangoproject.com/en/dev/ref/contrib/admin/
в основном, change_list.html необходимо переопределить.
Вы можете сделать это следующим образом:
templates/
admin/
app/
change_list.html
вы можете получить копию change_list.html от django/contrib/admin/templates/admin/
и обновите CSS так, как вы хотите.
Admin .py:
class MyClassAdmin(admin.ModelAdmin):
class Media:
css = {
'all': ('fancy.css')
}
fancy.css:
.column-foo {
width: 20px;
}
где "foo" - имя поля.
Источник: https://docs.djangoproject.com/en/3.0/topics/forms/media/