오답노트

[Django] 모델 관계 설정 본문

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 코드이다.

 

결과는 아래와 같다.

 

 

'Python > Django' 카테고리의 다른 글

[Django] Django Form  (1) 2022.11.17
[Django] Manager & QuerySet  (0) 2022.11.16
[Django] Template  (0) 2022.11.15
[Django] View에서 Model 사용하기  (0) 2022.11.15
[Django] Model 작성하기  (0) 2022.11.15