Programming/Python

[Django] QuerySet Django order_by 쿼리 세트, 오름차순 및 내림차순

BadaGreen_Kim 2021. 8. 23. 13:42

 

- Django에서 장고 ORM을 이용하여 DB를 읽을 때, 기본적으로 필요한 작업이 오름차순(ascending)/내림차순(descending)으로 특정 field를 가져오는 것입니다.

 

문법은 매우 간단하다.

 

Reserved.objects.filter(client=client_id).order_by('-check_in')

 

 

Reserved.objects.filter(client=client_id).order_by('-check_in'

 

즉,

 

 

ORM을 이용하여 DB를 가져올 때 어떻게 하면 될까요?

A라는 모델이 있다고 가정합시다. A의 모든 데이터를 긁어 오려면 다음과 같이 입력하면 됩니다.

A.objects.all()

 

그 다음에 order_by()를 사용하면 됩니다. 이 때 인자로 들어갈 문자열은 field의 이름입니다. A 라는 모델에 point라는 field가 있다고 합시다. 그러면 다음과 같이 읽어올 수 있습니다.

A.objects.all().order_by('point')

 

이렇게 읽어오면 오름차순으로 읽어오게 됩니다. 기본값은 오름차순 입니다.

A.objects.all().order_by('-point')

 

이렇게 읽어오면 내림차순으로 읽어오게 됩니다.

정리하면 order_by('filed 이름)으로 DB 조회 시 오름차순/내림차순을 결정하게 되고 이 때, filed이름 앞에 - 를 붙이면 내림차순으로 읽어오게 됩니다.