2016-06-08 2 views

답변

3

첨자 [-1] 쿼리 세트가 반전 된 주어진 목록 또는 튜플과,에 마지막 항목을 선택,이는 항목이없는 것 마지막. 당신이 시도 할 수 :

order = Order.objects.reverse("order_number")[0] 

하지만 당신은 그래서이 코드가 실패 reverse()에 정렬 키를 전달할 수 없습니다. 당신이 테이블에 대한 설정의 기본 정렬 순서가 있다면 당신은이 작업을 수행 할 수 있습니다

order = Order.objects.last() 

order_by() 명시 적으로 사용하는 것이 더 좋을 수 있습니다

order = Order.objects.order_by("order_number").last() 
+0

내가 굵은 글씨로 넣어 것입니다 : * 그 것 pk *로 쿼리 세트를 정렬 할 때만 작동합니다. 그렇지 않으면 Max ('pk')를 사용해야합니다. – Jerzyk

+0

@Jerzyk : 쿼리 세트에 정의 된 순서가 없으면 'last()'가 자동으로 기본 키로 정렬합니다. 이것은 Max ('pk')와 동일합니다. 하지만 Django에서'order_number'는 기본 키와 매우 흡사합니다. 그러므로 order_number 필드에 대한 명시적인 정렬이 이루어져야합니다 (순서가 모델에 정의되어 있는지 확실하지 않은 경우). – mhawke

+0

이것은 내가 의도 한 바이며, 답변의 주체 (특히 Max() 부분)에 추가하도록 요청했습니다. - 완전한 대답을 가졌습니다. (실수로 z'pk 'instaead'order_numner '에 대해) – Jerzyk

관련 문제