[Django]admin画面のモデルの並びを変更する

django

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クラスを第二引数に渡します。



カテゴリー