Python/Django
[Django] 모델 관계 설정
권멋져
2022. 11. 15. 22:14
1:1 관계
1:1 관계는 두 테이블의 row가 서로 1:1 관계를 의미한다.
이러한 관계가 되도록 model을 작성해보자.
Test2라는 모델을 생성했다. test는 외래키로 Test 모델과 1:1관계를 나타내고 있다.
ForeignKey로 다른 모델과 1:1 관계를 만들 수 있다.
이때 on_delete 관계는 참조하는 인스턴스가 삭제 되었을 때 처리방식을 지정한다.
위 화면은 Test2에서 데이터를 추가할 때, Test의 정보를 가지고 1:1 관계를 형성해 추가한다.
M:N 관계
다대다 관계를 갖는 모델을 만들 수 있다
ManyToManyField 로 다대다 관계를 갖을 모델을 선택하면 서로 다대다 관계를 갖게된다.
참고로 아래는 다대다 관계를 갖는 모델이다.
1:M 관계
1:M 관계는 위 관계들과 달리 Field로 지정하는 것이 아닌 메소드로 접근한다.
1:1 관계인 Test2를 1:M 관계로 가져와보자.
Test 모델에서 1:1 관계에 있는 Test2의 모든 정보를 가져와 출력한다.
아래는 출력하기 위한 html 코드이다.
결과는 아래와 같다.