바뀜

720 바이트 추가됨 ,  2021년 5월 25일 (화) 19:58
4번째 줄: 4번째 줄:  
폼 등의 사용해서 자동화에 도움을 준다.
 
폼 등의 사용해서 자동화에 도움을 준다.
 
=필드=
 
=필드=
데이터를 저장할 테이블을 디자인해야 하는데, DB에 대한 제약은 모델의 필드에서 만들어준다.
+
데이터를 저장할 테이블을 디자인해야 하는데, 테이블의 속성에 대한 제약은 모델의 필드에서 만들어준다.
    
==텍스트 관련==
 
==텍스트 관련==
59번째 줄: 59번째 줄:  
==타 모델과 연결하는 필드==
 
==타 모델과 연결하는 필드==
 
연결하려는 쪽에서 사용해주면 된다.
 
연결하려는 쪽에서 사용해주면 된다.
 +
 +
외부모델을 연결한다든가 다양한 상황이 생길 수 있다. 이때 외부모델을 임포트해와야 하는데, 다음과 같은 형식으로 불러온 후 사용한다.
 +
 +
<code>from 앱이름.models import 모델명</code> 형식으로 임포트 해서 사용할 수 있다.
 
{| class="wikitable"
 
{| class="wikitable"
 
!내용
 
!내용
90번째 줄: 94번째 줄:  
|-
 
|-
 
|필드명 = models.ForeignKey
 
|필드명 = models.ForeignKey
|author속성을 외부의 객체를 불러온다는 의미.
+
|필드명 속성을 외부의 객체로 둔다는 의미.
 
|}
 
|}
 
====옵션====
 
====옵션====
98번째 줄: 102번째 줄:  
|-
 
|-
 
|어느 객체를 불러올 것인가.
 
|어느 객체를 불러올 것인가.
|models.ForeignKey(모델명, 이외옵션) 형태로 모델을 import해서 넣는다.
+
|models.ForeignKey(연결할모델명, 이외옵션) 형태로 작성한다.
 
|-
 
|-
 
|on_delete=models.세부옵션
 
|on_delete=models.세부옵션
108번째 줄: 112번째 줄:  
|-
 
|-
 
|CASCADE
 
|CASCADE
|외래모델이 지워지면 함께 지운다는 의미.
+
|외래모델이 지워지면 함께 지운다는 의미.(기존 글이 사라질때 댓글이 같이 사라지게 한다)
 
|-
 
|-
 
|PROTECT
 
|PROTECT
129번째 줄: 133번째 줄:  
|
 
|
 
|}
 
|}
 +
 +
==== 사용예 ====
 +
{| class="wikitable"
 +
!
 +
!
 +
!
 +
|-
 +
|댓글달기
 +
|댓글을 다는 기능을 구현하기 위해 댓글 테이블을 만들려면 기존 글에 대한 ForeignKey를 사용해야 한다.
 +
|<syntaxhighlight lang="python">
 +
class 댓글(models.Model):
 +
    기존글 = models.ForeignKey(기존모델, on_delete-models.CASCADE)
 +
</syntaxhighlight>
 +
|}
 +
 
==선택모델 만들기==
 
==선택모델 만들기==
 
카테고리를 지정할 때 사용한다.<syntaxhighlight lang="python">
 
카테고리를 지정할 때 사용한다.<syntaxhighlight lang="python">