私は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
.