===モデル===
class A(models.Model):
name= models.CharField(max_length=20, blank=False)
Class B(models.Model):
university = models.CharField(max_length=25, blank=False)
location = models.CharField(max_length=30, blank=False)
b_fk= models.ForeignKey(A)
Class C(models.Model):
studentclass = models.CharField(max_length=10, blank=False)
section = models.CharField(max_length= 10)
c_fk = models.ForeignKey(B)
class Cfurther(models.Model):
branch= Models.CharField(max_length=15, blank=Flase)
number = models.IntegerField()
cfur_fk = models.ForeignKey(C)
class Info(models.Model):
info_number = models.IntegerField()
info = models.CharField(max_length= 12, blank=Flase)
info_fk = models.ForeignKey(B, related_name= "info_set")
class Infocategory(models.Model):
find = models.CharField(max_length=15, blank=False)
cat_fk = models.ForeignKey(Info)
class Extra(models.Model):
extrainfo = models.CharField(max_length=30)
extra_fk = models.ForeignKey(Infocategory)
===見る===
Django ドキュメント
外部キー関係を自動的に「たどる」QuerySet を返し、クエリの実行時に追加の関連オブジェクト データを選択します。
select_related は、単一値の関係 (外部キーおよび 1 対 1) に限定されます。
https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related
モデルフィールドを取得するために次のクエリセットを作成しました(すべての関係は1対多です)
myquery = Info.objects.select_related().filter(info_number__iexact = 123)
- Info Modelから上位モデル、下位モデルへとトラバースしたい
- テンプレートで select_related() を使用してクラス Aレコードを取得するのに問題はありませんが、私の場合 (クラス B、C、Cfurther、Infocategory、Extra) で select_related を使用してすべてのモデル フィールドを取得することは可能ですか?
- そうでない場合は、新しいクエリセットを作成する必要がありますか? またはどのselect_related()が機能しますか?
select_relatedフィールドのルックアップに関して少し混乱しています