当添加list_filter是如何解决在Django的ModelAdmin变化一览表/设置列宽?(H

2019-06-27 22:57发布

我在努力改善在Django项目的admin.py,虽然我不完全饮誉如何表是在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,决赛。

FWIW,导致此的CSS是在这里:

.change-list .filtered table, .change-list .filtered .paginator, 
.filtered #toolbar, .filtered div.xfull {
    margin-right: 160px !important;
    width: auto !important;
}

禁用宽度式样规格修复它,但我宁愿做的事情Django的方式,如果有一个 - 我希望也许有一种方法来定制从FieldAdmin类滤波器的看法?

Answer 1:

您可能要参考这个: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#overriding-vs-replacing-an-admin-template

基本上,change_list.html需要重写。

你可以这样来做:

templates/
  admin/
    app/
      change_list.html

你可以从获得change_list.html副本django/contrib/admin/templates/admin/

和更新的CSS你想要的方式。



文章来源: How to fix/set column width in a django modeladmin change list table when a list_filter is added?