1. chaining을 지원한다.
filter를 통해서 새로운 QuerySet을 만든다.
query = 'f' #검색어
qs = Post.objects.all().filter(message_icontains=query)
#필드명 __ 관련된 operations (각 필드에 따라 지원되는 operations가 달라진다.)
qs
2. Lazy한 특성이다.
- QuerySet을 만드는 동안에는 DB 접근을 안 한다.
- 실제로 데이터가 필요한 시점에 접근한다.
(순회를 돌거나, 쿼리셋을 출력하거나, 리스트를 출력할 때 등등)
3. 다양한 조회요청 방법
- 조건을 추가한 QuerySet
filter(), exclude() 등등

- 특정 모델객체 1개 획득
queryset[숫자인덱스]
queryset.get() : 한 개를 획득하기 때문에 없거나 두 개 이상이 획득되면 error 발생한다.
queryset.first()
queryset.last()
- and 조건: 콤마(,)
- or 조건

4. 정렬 조건 추가
- 모델 클래스의 Meta 속성으로 지정: list로 지정
- 모든 queryset에 order_by() 지정
유용한 템플릿 기능: https://getbootstrap.com
장고 extensions: https://django-extensions.readthedocs.io/en/latest/