둘간의 차이점을 모르겠어서 나름대로 정리해봤다
일단 Queryset이란 용어의 의미를 알아야 한다.
장고 공식문서
A QuerySet represents a collection of objects from your database. It can have zero, one or many filters. Filters narrow down the query results based on the given parameters. In SQL terms, a QuerySet equates to a SELECT statement, and a filter is a limiting clause such as WHERE or LIMIT.
You get a QuerySet by using your model’s Manager. Each model has at least one Manager, and it’s called objects by default. Access it directly via the model class, like so:
결국 쿼리셋(Queryset)은 DB에서 뽑아온 여러 객체의 집합을 의미하는것이다.
SQL로는 SELECT로 가져오고 WHERE LIMIT 등으로 필터링 한 것과 같다
filter(), order_by(), values(), all(), intersection(), select_related(), defer(), extra() 등이 새 쿼리셋을 리턴하는 메서드이다.
그래서 이런것들은 모든 값을 조회하거나 속성값대로 정렬하거나 교집합을 만들거나 하는데 쓴다. 데이터 객체들을 많이 뽑아놓으려면 이런것들을 쓰면된다.
쿼리셋이 아닌 객체 자체나 어떤 값을 리턴하는것들은 get(),first(),last() 나 create(), count() 같은 것들이다.
원하는 객체만 얻고 싶거나 카운트 값같이 특정한 값을 얻고 싶을때 또는 데이터를 추가하거나 수정하거나 삭제하는 메서드들이 여기에 포함된다.