私は、次のREQS合うことができる適切なDjangoのモデル作成しようとしています:アドレスクラスモデルは、多くの関係に多くのために働いていない
人と多くの関係に
人のクラスがある1クラスは、多くの
グループクラスを持つ多くの関係を予約クラスは、人の集まりやグループ
が含まれていたこれは私のコードです:
class Person(models.Model):
first_name = models.CharField(max_length=15)
last_name = models.CharField(max_length=20)
def __str__(self):
return self.first_name+ ' - ' + self.last_name
class Address(models.Model):
person = models.ForeignKey(Person)
address_line = models.CharField(max_length=200)
def __str__(self):
return self.address_line
class Group(models.Model):
group_name = models.CharField(max_length=12)
persons = models.ManyToManyField(Person)
def __str__(self):
return self.group_name
class Book(models.Model):
record_name = models.CharField(max_length=12)
person = models.ForeignKey(Person)
group = models.ForeignKey(Group)
def __str__(self):
return self.record_name
ただし、正しくありません。 1)グループに複数の人物が含まれるようになりましたが、人物にはグループが含まれていない可能性があります。 私はPersonクラスに次のコードを追加する必要がある場合はわからない:Bookクラスでのご予約はレコードあたりの人&グループの唯一の1レコードが含ま
groups = models.ManyToManyField(Group)
2)。それはいくつかのparamsを求め、それをコンパイルしていないため
person = models.ForeignKey(Person, on_delete=models.CASCADE())
:私はモデルに外部キーを追加すると
3)は、私が on_deleteタグを削除しました。
私はC#のためにこれをすべて行う方法を知っていますが、私はPython/Djangoでこの単純な作業にちょっと固執しています。
にバインドされている方法「Aグループは現在、複数の人を含めることができますが、人はどのグループが含まれていません。」。これは間違っています。外部キーはエンティティ間の双方向関係を構築するので、 'person.group_set.all()'は人が属するグループを与えます。また、デザインは一貫性の問題に脆弱です。これがあなたのデザインによって許可されるべきかどうかはわかりませんが、本はその本とは別のグループに所属する人が所有することができます。 – ozgur