【Djano】Admin画面でModelの関連表示(relation)をする

Question Modelに対してChoiceが三つついています。
file
Adminでこんな感じのrelation表示をしてみます。

モデルの定義、関連づけ(Relation)の設定

from django.db import models

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

models.ForeignKeyでrelationを設定できます。

管理画面の関連づけ(Relation)の設定

from django.contrib import admin

from .models import Choice, Question

class ChoiceInline(admin.StackedInline):
    model = Choice
    extra = 3

class QuestionAdmin(admin.ModelAdmin):
    inlines = [ChoiceInline]

admin.site.register(Question, QuestionAdmin)

admin.StackedInlineクラスを継承して関連付けたいクラスのInlineクラスを定義します。
extraはこれで入力欄を3つ表示できます。
入力しないで表示するだけなら、いらないです。

https://docs.djangoproject.com/ja/4.1/intro/tutorial07/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です