category__name__in 보다 category_id로 필터링하는게 더 좋다.
size__name__in 보다 size__id__in이 좋다.
이유는 id는 기본 설정으로 인덱싱하기 때문에 속도가 빠르다
이렇게 하기 위해서는 프론트엔드에서 필터링 값을 하드코딩해서 처리하거나, 필터나 카테고리 데이터(id값)를 조회하는 API를 따로 만들어서 처리할 수 있다.
prefetch_related는 쿼리셋 코드의 마지막 부분에 넣어줄것, 동작에 차이는 없지만 컨벤션이다
annotate가 subquery 형태로 적용되는 경우가 있다
.distinct()는 필요없으면 빼도 된다.
장고 실무 프로젝트 코드를 보면 보통 models class에 메서드를 많이 추가해서 활용한다.
좋은 코드란?
_access_token 같이 앞에 언더바를 한개 넣으면 내부적으로 사용하라는 의미의 변수가 된다.
앞에 언더바가 한개 붙은 변수나 함수 등은 from module import *로 임포트되지 않는다.
이런 것들은 from module import _access_token 같이 확실하게 임포트해줘야 한다.
파이썬에서 if else를 쓰듯이 SQL에선 CASE WHEN이 있고 장고 ORM에서도 쓸 수 있다.
테스트 코드는 success, fail 까지는 만들어 주는게 좋다.