8

我正在努力改进 django 项目中的 admin.py,虽然我对表格在 list_diplay 中的三个字段如何出现并不完全满意,但至少它比只获得一个默认对象列表要好跨越整个页面的列...

无论如何,我要问的是为什么:

class FieldAdmin(admin.ModelAdmin):
    list_display = ('name', 'label', 'standard',  )

看起来像这样:

没有 list_filter

当我添加 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 类自定义过滤器视图?

4

2 回答 2

6

你可能想参考这个: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。

于 2012-09-07T03:23:27.237 回答
5

管理员.py:

class MyClassAdmin(admin.ModelAdmin):

    class Media:
        css = {
            'all': ('fancy.css')
        }

花式.css:

.column-foo {
    width: 20px;
}

其中“foo”是一个字段名。

来源:https ://docs.djangoproject.com/en/3.0/topics/forms/media/

于 2020-05-26T06:59:55.473 回答