[Django]admin画面のモデルの並びを変更する
Djangoのデフォルトで用意されているadmin画面のモデルの並びを好きなように修正します。
Djangoチュートリアルの備忘録です。
admin画面のモデルの並びを変更する
元々のadmin.pyは以下のようになっています。
from django.contrib import admin from .models import Question admin.site.register(Question)
QuestionとChoiceというクラスを読み込んでそれをadmin画面で反映させるというものです。
この時の並びはmodels.pyに記述したコードの並びが反映されています。
class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published')
この並びを変更するためにadmin.pyを以下のように書き換えます。
from django.contrib import admin from .models import Question class QuestionAdmin(admin.ModelAdmin): fields = ['pub_date', 'question_text'] admin.site.register(Question, QuestionAdmin)
モデルの並びを変更したい時はQuestionAdminのようにクラスを作成して、fields変数の中に配列を入れ込みます。この時、配列の中身で順序を決定します。
そして、admin.site.register関数にそのモデルのクラスを第一引数に、QuestionAdminクラスを第二引数に渡します。