django order_by 쿼리 세트, 오름차순 및 내림차순


287

django의 검색어 세트를 날짜별로 내림차순으로 주문하려면 어떻게해야합니까?

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

체크인 날짜로 예약 된 모든 내림차순에서 필터링하고 싶습니다.

답변:


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

-이전에 주목하십시오 check_in.

장고 문서


models.somModalName.all (). order_b ( '-date / time')
Shedrack

1
-열 이름 앞에는 -평균 오름차순 없이 내림차순을 의미합니다.
8:53에 CallMarl

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

"check_in"앞의 하이픈 "-"은 내림차순을 나타냅니다. 오름차순이 내포됩니다.

filter () 전에 all ()을 추가 할 필요는 없습니다. 그래도 작동하지만 루트 QuerySet의 모든 객체를 원할 때 all () 만 추가하면됩니다.

https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-specific-objects-with-filters 에 대한 자세한 내용은 여기를 참조 하십시오.


3
허용 된 답변보다 깨끗하며 .all (). filter (xxx)를 가질 이유가 없습니다.
Luke Dupin

19

다음 지시 사항을 사용할 수도 있습니다.

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

4
적어도 이론적으로는 SQL 서버가 주문을 처리하도록하는 것이 더 효율적이라고 생각합니다. 그래도 좋고 명확합니다.
Michael Scheper

1
@MichaelScheper 예, 확실합니다. 또한 .all().filter()필요하지 않습니다. .filter()혼자도 괜찮습니다.
Sam Creamer

14

오름차순 :

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

내림차순 :

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

또는

2.  Reserved.objects.filter(client=client_id).order_by('check_in')[::-1]

1
왜 두 번째 방법을 사용하고 싶습니까?
MichaelR

가능한 선택 중 하나입니다. 그러나 더 나은 방법은 첫 번째 방법을 사용하는 것입니다.
anjaneyulubatta505

12

그것은 제거 작동합니다 .all():

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

3
이것은 본질적으로 @ leonardo-z의 대답과 동일합니다.
Michael Scheper

7

-를 추가하면 내림차순으로 정렬됩니다. 모델의 메타에 기본 순서를 추가하여이를 설정할 수도 있습니다. 이것은 쿼리를 할 때 MyModel.objects.all ()을 수행하면 올바른 순서로 나옵니다.

class MyModel(models.Model):

    check_in = models.DateField()

    class Meta:
        ordering = ('-check_in',)

3
  1. 오름차순

    Reserved.objects.all().filter(client=client_id).order_by('check_in')
  2. 내림차순

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

- (하이픈)은 여기서 내림차순을 나타냅니다.


1

이것은 나를 위해 일하고 있습니다.

latestsetuplist = SetupTemplate.objects.order_by('-creationTime')[:10][::1]

-1

67

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

'-'는 내림차순을 나타내며 오름차순의 경우 클래스 속성 만 제공합니다.


1
질문에 대한 자세한 내용을 알려주십시오
iman

안녕하세요, StackOverflow에 오신 것을 환영합니다. 답변을 검토하고 올바르게 형식을 지정하고 설명하십시오 (이 상단의 "67"은 무엇입니까 ???); "좋은"답변을 작성하는 방법을 배우 려면 stackoverflow.com/help/how-to-answer 를 참조하십시오
Pierre
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.