Relations - 다대다 관계
210810
tag 모델 만들기
다대다 관계는 A모델의 여러 레코드가 B모델의 여러 레코드에 연결될 수 있는 관계를 의미한다.
예를 들면 tag가 있다.
models.py
tag = models.ManyToManyField(Tag, null=True, black=True)다대다 관계 타입을 만들때는 위와같이 할 수 있다.
ManyToManyField에서는 null이 의미가 없기 때문에 인자로 설정해도 안해도 상관이 없다.
WARNINGS:
blog.Post.tag: (fields.W340) null has no effect on ManyToManyField.포스트 목록 페이지에 tag 추가하기
tag를 test할 때는 다음과 같이 작성할 수 있다
tests.py
self.tag_python_kor = Tag.objects.create(
name="파이썬 공부", slug="파이썬-공부"
)
self.tag_python = Tag.objects.create(
name="python", slug="python"
)
self.tag_hello = Tag.objects.create(
name="hello", slug="hello"
)post_list.html
3 :
p.tags.all대신에p.tags.iterator를 사용했다. 둘다 기능은 동일한데 후자가 서버에 부담을 덜어준다.
tag 페이지 만들기

tag를 클릭했을 때 이동한 페이지에서 태그를 기준으로 게시물을 보여준다는 인식을 주기 위해 태크 뱃지를 위쪽에 위치시킨다.
post_list.html
Last updated
Was this helpful?