Djangoはモデルの表示モードを開発します

以下は、主に管理サイトのカスタマイズ方法に関するものです。この点で、XXアプリケーションのadmin.pyファイル(ここではブログを例として取り上げます)を編集して、次のように変更できます。

from django.contrib import admin
from .models impot Post

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
     list_display = ('title', 'slug', 'author', 'publish', 'status')

ここでは、ModelAdminから継承したカスタムクラスを介して、現在のモデルが管理サイトに登録されていることをDjango管理サイトに通知します。このクラスには、モデルの表示方法と管理サイトでの相互作用に関する情報を含めることができます。これに対応して、list_display属性は、管理オブジェクトリストページに表示するモデルフィールドを設定できます。@ admin.register()デコレータは、置き換えたadmin.site.register()関数と同じ関数を実行し、登録します。その装飾ModelAdminクラス。

以下は、管理モデルをカスタマイズするためにさらに多くのオプションを使用し、対応するコードは次のとおりです。

@admin.register(Post)
class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug', 'author', 'publish', 'status')
    list_filter = ('status', 'created', 'publish', 'author')  # 右侧栏
    search_fields = ('title', 'body')  # 搜索栏
    prepopulated_fields = {
    
    'slug': ('title',)}  # 根据输入的title字段预填充slug字段
    raw_id_fields = ('author',)  # author字段利用搜索微键予以展示
    date_hierarchy = 'publish'   # 导航链接
    ordering = ('status', 'publish')  # 按照 status 和 publish 排序

ブラウザに戻り、投稿リストページをリロードすると、対応する結果は次のようになります。

ここに画像の説明を挿入
投稿リストページに表示されるフィールドが、実際にはlist_display属性で指定されたフィールドであることを確認するのは難しくありません。リストページには右側の列が含まれ、結果はlist_filter属性に含まれるフィールドによってフィルタリングされます。

要約すると、管理サイトでのモデルの表示方法をカスタマイズするには、数行のコードしか必要ありません。さらに、Django管理サイトをカスタマイズおよび拡張する方法はたくさんあります。

以上の点から、インスピレーションを与えていただきたいと思いますので、よろしくお願いいたします。

おすすめ

転載: blog.csdn.net/Erudite_x/article/details/112533600