[Django] 쿼리셋 필터링 역순 정렬 - Tirrilee/TechTalk GitHub Wiki

q1 = User.objects.filter(gender="male").order_by("name")
q2 = User.objects.filter(gender="male").order_by("-name")
q3 = User.objects.filter(gender="male").order_by("name").reverse()
q4 = User.objects.filter(gender="male").order_by("University__grade")
q5 = User.objects.filter(gender="male").order_by("University__grade").reverse()

q1 : User 모델에서 성별이 남자인 유저를 필터링하고 이름순으로(ㄱㅎ 또는 az) 정렬(오름차순) q2 : User 모델에서 성별이 남자인 유저를 필터링하고 이름의 역순으로 정렬(내림차순) q2와 q3은 같은 로직임. 즉, 결과가 같음

q4와 q5 에서 더블 언더스코어 (__) 는 foreign key field의 field 를 기준으로 정렬하고 싶을 때 사용 여기서는 User model 의 University field 가 외래키로 되어 있으며 University model 안에는 grade field 가 존재한다는 전제

q4 : User 모델에서 성별이 남자인 유저를 필터링하고 유저의 대학교의 등급이 높은(1등급 ~ x등급 1등급이 높은 등급이라는 전제하에) 순서대로 정렬(오름차순) q5 : User 모델에서 성별이 남자인 유저를 필터링하고 유저의 대학교의 등급이 낮은(x등급 ~ 1등급 1등급이 높은 등급이라는 전제하에) 순서대로 정렬(내림차순)

단, University__-grade 는 잘못된 문법 -> 에러발생