Django의 내림차순으로 쿼리 세트에서 항목 필터링

Salman Mehmood 2023년6월20일
Django의 내림차순으로 쿼리 세트에서 항목 필터링

이 튜토리얼에서는 Django의 order_by() 메서드를 사용하여 쿼리 세트 항목을 내림차순으로 필터링하는 방법을 배웁니다.

order_by() 메서드를 사용하여 Django에서 내림차순으로 쿼리 집합에서 항목 필터링

order_by() 메서드는 결과를 정렬합니다. 기본 순서는 데이터베이스에 삽입했을 때의 순서입니다.

기본 주문을 얻는 것이 어떻게 보이는지 봅시다. 먼저 모든 개체를 가져옵니다.

simple.objects.all()

출력:

<QuerySet [<Simple:www.example.com>,<simple:www.yahoo.com>,<www.example.com>,<www.example.com>,<facebook.com>,<apple.com>]>

다른 주문을 원하면 order_by()를 사용합니다. all() 대신 order_by()를 사용할 수 있습니다.

모든 결과에 대해 작동할 것입니다. 이 전에 필터가 있으면 먼저 실행된 다음 order_by()가 실행됩니다.

이제 주문할 항목을 지정하는 문자열을 전달합니다. 예를 들어 order_by("id")로 필터링하면 가장 작은 id로 시작하여 위로 올라가기 때문에 동일한 결과를 얻습니다.

아래 코드를 참조하십시오.

simple.objects.order_by("id")

출력:

<QuerySet [<Simple:www.example.com>,<simple:www.yahoo.com>,<www.example.com>,<example.com>,<facebook.com>,<apple.com>]>

id 앞에 -를 사용하여 반전시키므로 가장 작은 ID부터 시작하는 대신 가장 큰 ID부터 시작합니다. 실행하면 www.apple.com이 쿼리 세트의 첫 번째 항목임을 알 수 있습니다.

simple.objects.order_by("-id")

출력:

<QuerySet [<apple.com>,<facebook.com>,<example.com>,<www.example.com>,<simple:www.yahoo.com>,<Simple:www.example.com>]>

다른 열에서 order_by()를 사용할 수도 있습니다.

url 열이 있다고 가정합니다. url로 주문하면 다음 코드를 사용할 수 있습니다.

simple.objects.order_by("url")

출력:

<QuerySet [<apple.com>,<Simple:example.com>,<facebook.com>,<www.example.com>,<www.example.com>,<simple:www.yahoo.com>]>

문자열 필드이므로 알파벳순으로 정렬됩니다. 단순히 앞에 -를 입력하여 내림차순으로 필터링할 수 있습니다.

쿼리 세트에서 첫 번째 항목 www.yahoo.com을 얻습니다.

simple.objects.order_by("-url")

출력:

<QuerySet [<simple:www.yahoo.com>,<www.example.com>,<www.example.com>,<facebook.com>,<Simple:example.com>,<apple.com>]>

일반적으로 잠재적으로 두 개의 열이 정확한 순서를 가질 수 있는 경우 여러 개의 order_by()가 있습니다. 두 개의 10 숫자와 몇 가지 다른 숫자가 있는 숫자 열을 살펴보겠습니다.

simple.objects.order_by("number")

출력:

<QuerySet [<apple.com>,<Simple:example.com>,<facebook.com>,<www.example.com>,<www.example.com>,<simple:www.yahoo.com>]>

“2"가 같은 행 뒤에 있기 때문에 apple.com이 첫 번째임을 알 수 있습니다.

보다 엄격한 순서를 지정하려면 order_by()에 다른 옵션을 추가할 수 있습니다. 먼저 번호로 주문한 다음 url로 주문합니다.

simple.objects.order_by("number", "url")

결과를 제한하려는 경우(예: 처음 세 개) 다음 구문을 사용할 수 있습니다.

simple.objects.order_by("-id")[:3]

출력:

<QuerySet [<apple.com>,<facebook.com>,<example.com>]>

이제 내림차순으로 설정된 쿼리의 세 항목만 있습니다.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn