728x90
반응형
* OneToOneField와 ForeignKey의 차이
OneToOneField와 ForeignKey(model, unique=True)는 개념적으로 같다. 둘의 차이는 역관계(reverse relationship)에 있다. One-to-one 모델의 역참조는 하나의 객체(single object) 를 반환하지만, ForeignKey의 역참조는 QuerySet 을 반환한다.
OneToOneField 언제쓰나? 예를 들어 1명의 유저는 하나의 프로필만을 가져야한다고 강제한다면 사용할 수 있다. ()첫번째 테이블이 User, 두번째 테이블은 Profile. 두번째 테이블은 반드시 첫번째 테이블과 한번만 매칭된다.
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='profile')
interest = models.ManyToManyField(Interest)
stack = models.ManyToManyField(Stack)
class Interest(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
class Stack(models.Model):
name = models.CharField(max_length=30)
def __str__(self):
return self.name
OneToOneField와 ManyToManyField 사용예시
728x90
반응형
'웹 프로그래밍' 카테고리의 다른 글
Django Transaction (0) | 2021.07.20 |
---|---|
GET과 POST 정리 (0) | 2021.07.19 |
[AWS (5)] AWS HTTPS 설정 (0) | 2021.07.17 |
[AWS (4)] AWS 도메인 연결 (0) | 2021.07.17 |
[AWS (3)] AWS 기반 Stack 배포 (0) | 2021.07.17 |