/ / Djangoによる外部キーによる問い合わせ - python、django、django-models

外部キーによるDjangoクエリ - Python、django、django-models

私はDjangoを学んでいます、そしてこの基本モデルがあります。

from django.db import models

class Country(models.Model):
name = models.CharField(max_length=255,)
continent = models.ForeignKey("Continent")

class Continent(models.Model):
name = models.CharField(max_length=255, unique = True)
countries = ???

大陸が欲しい。各国は、一致する国を返す属性であり、大陸 - 外部キーはこの大陸に設定されています。 Djangoのドキュメントから、私は外部キーを使うべきだとわかりましたが、後方への問い合わせは問題を引き起こしています。私はいくつかの方法を試しましたが、初心者としてこれを行うための「正しい」方法を見つけることができません。 助言がありますか?

回答:

回答№1の場合は3

同意する 木の葉。また、あなたは定義することができます related_name ForeignKeyでは、

continent = models.ForeignKey("Continent", related_name="countries")

そう、あなたは簡単に大陸の国を取得することができます。

continent.countries.all()

ここに、 大陸 大陸モデルの対象です。


回答№2の場合は3

作成する必要はありません。 countries の属性 Continent 逆の関係を確立する。あなたは見つけることができます Countries それぞれに添付 Continent 逆を使って ForeignKey 関係:

continent = Continent.objects.get(name="Asia")
countries = continent.country_set.all()

country_set あなたが作成したときに関数はDjangoによって作成されます ForeignKey 関係 Country そして Continent.