私はdjangoで1対多の関係を作ろうとしています。
私のモデルでは、クラスPersonとクラスGroupがあり、1つのグループにN人を含めることができ、少なくとも1人の人が中にいるグループは存在できないという関係を作成します。
MERダイアグラムでは、次のようになります(これらがエンティティと関係であると想像してください)
|グループ|1==== <> -----N|人|
私はdjangoで1対多の関係を作ろうとしています。
私のモデルでは、クラスPersonとクラスGroupがあり、1つのグループにN人を含めることができ、少なくとも1人の人が中にいるグループは存在できないという関係を作成します。
MERダイアグラムでは、次のようになります(これらがエンティティと関係であると想像してください)
|グループ|1==== <> -----N|人|
アーサーが述べているように、これはDjangoのドキュメントに非常によく記載されています。
実際、それは非常に簡単です。
from django.db import models
class Person(models.Model):
# Some other fields
group = models.ForeignKey(Group, related_name='people')
class Group(models.Model):
# Some fields
ご覧のとおり、personクラスで外部キーを作成するだけです->これは、データベースで手動で設定する方法とまったく同じです。
Djangoは、グループから人々を見つけることができるように、逆の関係を自動的に追加します。
some_group.people
related_name
は逆の関係の名前を指定することに注意してください。people
これはオプションですが、の代わりに使用したいと思いますpersons
。