-
Django ORM에서 queryset과 object의 차이점에 대해서 설명하시오
QuerySet은 여러 Object의 묶음입니다.
Model.objects 로 불러올 수 있고, 다양한 메서드를 이용해 정렬, 필터, 주석 등의 기능을 사용할 수 있습니다.
Object는 데이터베이스에 저장된 개별 레코드입니다. Django에선 Model 클래스의 인스턴스로 간주됩니다.
Django ORM에서 정참조와 역참조에 대해서 설명하시오
정참조는 fk로 참조한 모델에 접근하는 것이고,
역참조는 반대로 참조된 모델에서 참조한 모델에 접근하는 것입니다.
from django.db import models class Article(models.Model): title = models.CharField(max_length=100) content = models.TextField() class Comment(models.Model): article = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='comments') content = models.TextField()
예를 들어 위처럼 게시글과 댓글 모델을 만들고, 댓글에서 게시글을 참조하겠습니다.
정참조는 댓글에서 참조한 게시글에 접근하는 것입니다. Django에서 Comment.article 특정 댓글에 연결된 게시글에 접근할 수 있습니다.
역참조는 반대로 댓글에서 참조한 게시글에서 댓글에 접근하는 것입니다. 댓글 모델에서 related_name으로 선언한 것으로 접근 가능합니다. Article.comments로 특정 게시글의 모든 댓글에 접근할 수 있습니다.