여러가지 조건의 필터 적용하기
Q() 객체를 사용해서 여러가지 조건의 필터를 적용할 수 있다.
방법은 아래와 같다.
맨 아래줄 queryset = Property.objects.filter(q)
는 아래의 형태를 띄게 될것이다.
추가로 필터 조건에 아무것도 걸리지 않을 경우 전체 Property
의 목록이 나오게 된다.
Property.objects.filter(Q(host__is_super=hosr)|Q(type__name=type)|
Q(facility__name=facility)|Q(category__name=category)}Q(rule__name=rule))
리뷰가 많은 숙소 순으로 정렬하기
annotate
를 이용하여 해당 숙소에 리뷰가 몇개인지 count
해서 필드 생성 후
num_reviews
를 기준으로 정렬했다.
order_by num_reviews
는 오름차순 정렬이고
앞에 -
는 내림차순을 의미한다.