장고에서 쿼리셋 사용시
filter()
또는 get()
메소드를 통해 조건에 부합하는
객체들을 검색할 수 있다.
장고 문서를 그저 읽을 때는
미처 알지 못했던 개념이었다.
하지만, 샤넬 홈페이지의 로컬 데이터베이스 구축 및 엔드포인트 구축을 하며
그 차이를 알게 되었다.
내가 작성한 views.py(엔드포인트)에서 validation
을 할 때,
filter와 get 둘 중 get의 경우는 DB에 데이타 row가 없거나
해당 row가 multiple 일 때, 에러 메시지를 보여줬다.
get()메소드 사용 룩업시 : MultipleObjects
혹은 DoesNotExist exception
에러를 리턴한다.
filter()메소드 사용 룩업시 : 새로운 쿼리셋을 생성 후,
필터 조건에 부합하는 객체들을 넣은 후 리턴한다.
(즉, 필터조건에 부합하는 객체들이 하나도 없을시,
에러 메시지가 아닌 빈 쿼리셋을 리턴한다.)