Django Model에서 Manager는 데이터베이스와 상호 작용하는 인터페이스
- Default Manager : objects (rename 가능)

>>> Notice.objects.get(notice_id)

→ 여기서 objects가 Manager임

커스텀 모델 매니저

# blog/managers.py

class PublishedManager(models.Manager):         # status가 published인 데이터를 필터하는 매니저 생성
    def get_queryset(self):
        return super().get_queryset().filter(status='published')

→ 커스텀 매니저 정의

# blog/models.py
from . import managers

class Post(models.Model):
    post = models.Manager()         # rename default Manager 
    published = managers.PublishedManager()

    STATUS_CHOICES = (
        ('draft', 'Draft'),
        ('published', 'Published'),
    )

    publish = models.DateTimeField(default=timezone.now)

→ 모델에 커스텀 매니저 추가

>>> Post.post.count()          # 기존 Post.objects.count() 와 동일
2
>>> Post.published.count()
1