8

私はdjangoプロジェクトでadmin.pyの改善に取り組んでおり、list_diplayの3つのフィールドでテーブルがどのように出力されるかについて完全に夢中になっているわけではありませんが、少なくとも、デフォルトのオブジェクトリストを1つで取得するよりはましです。ページ全体にまたがる列...

とにかく、私が求めているのは、なぜこれが:

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',]

なぜこんな感じなの?

Imgur

フィルタを追加する前と同じように、列を再成長させて幅を埋める方法はありますか?私はドキュメントを読んでグーグルをしていますが、組み込まれていないようですか?私が取り組んでいるプロジェクトは現在、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

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/

于 2020-05-26T06:59:55.473 に答える