3 개의 모델을 만들려고합니다. Person
, Address
및 Anniversy
. 계획은 각 사람에 대해 하나의 주소와 하나의 기념일을 갖는 것입니다. 그러나 각 주소와 기념일에는 여러 사람이있을 수 있습니다.
지금까지 다음과 같은 내용이 있지만 OneToMany(foreign key)
관계가 잘못된 방향 이라고 생각합니다 . 즉, 각 주소는 한 사람을 가질 수 있지만 각 사람은 여러 주소를 가질 수 있습니다.
from django.db import models
class Person(models.Model):
name = models.CharField(max_length=50)
birthday = models.DateField()
def __unicode__(self):
return u'%s' % (self.name)
class Address(models.Model):
person = models.ForeignKey(Person)
address = models.CharField(max_length=150)
def __unicode__(self):
return u'%s' % (self.address)
class Anniversy(models.Model):
person = models.ForeignKey(Person)
anniversy = models.DateField()
def __unicode__(self):
return u'%s' % (self.anniversy)
다른 방식으로 관계를 생성합니다. 다 Person
대일 관계를 만들기 위해 유형 에 외래 키를 추가합니다 .
class Person(models.Model):
name = models.CharField(max_length=50)
birthday = models.DateField()
anniversary = models.ForeignKey(
Anniversary, on_delete=models.CASCADE)
address = models.ForeignKey(
Address, on_delete=models.CASCADE)
class Address(models.Model):
line1 = models.CharField(max_length=150)
line2 = models.CharField(max_length=150)
postalcode = models.CharField(max_length=10)
city = models.CharField(max_length=150)
country = models.CharField(max_length=150)
class Anniversary(models.Model):
date = models.DateField()
한 사람은 하나의 주소와 하나의 기념일 에만 연결할 수 있지만 주소와 기념일은 여러 Person
항목 에서 참조 할 수 있습니다 .
Anniversary
그리고 Address
객체는 역방향, 역방향 관계도 부여됩니다. 기본적으로 호출 person_set
되지만 필요한 경우 다른 이름을 구성 할 수 있습니다. 쿼리 문서에서 다음 관계 "뒤로" 를 참조하십시오 .
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다