見出し画像

Django_管理画面に検索窓を設定する #310日目

Djangoの管理画面に関するメモです。

レコードが増えてきた時などは探すのが大変で、検索を掛けられるようにしたいと思います。Djangoの管理画面はデフォルトでそのような機能を用意してくれています。

class NoteOptions(admin.ModelAdmin):
  list_display = (‘id’,’author’,’text’,’writed_at’,’status’)
  list_filter = (‘author’,’writed_at’,’status’)
  search_fields = [‘text’,’author__username’]

検索窓は「search_fields」で定義します。

ここにフィールド名を指定すると、指定したフィールドの値で検索できるようになります。以下2点が注意点です。

・指定できるフィールドはCharFieldやTextField等のテキストフィールド
・ForeignKeyを介したフィールドは「__」で繋げる

後者は以下が基本文法です。

search_fields = ['foreign_key__related_fieldname']


また、list_filterもついでに紹介しておきます。これを定義しておくと管理画面の右側にフィルター欄が表示されます。以下のイメージです。

【Django】管理画面に検索ボックスとフィルター機能を実装する


ここまでお読みいただきありがとうございました!


参考


この記事が気に入ったらサポートをしてみませんか?