반응형
장고 쿼리는 마지막 n 레코드를 가져옵니다.
메시지 스트림을 구현하고, ID 오름차순으로 레코드 정렬, 각 페치 요청, 가장 최근의 10 개 레코드 만 페치하도록 허용하고 싶다고 가정 해 보겠습니다.
나는 시도했다 :
Messages.objects.filter(since=since)[:-10]
그리고 Negative Indexing이 지원되지 않는다는 오류가 발생했습니다.
내 현재 해결 방법은 ID를 내림차순으로 정렬하고 다음을 실행하는 것입니다.
Messages.objects.filter(since=since)[:10]
그러나 이렇게하려면 프런트 엔드가 순서를 다시 반대로해야합니다.
제 질문은 우아한 방법이 있습니까?
queryset을 reversed로 전달할 수 있습니다 .
last_ten = Messages.objects.filter(since=since).order_by('-id')[:10]
last_ten_in_ascending_order = reversed(last_ten)
또는 [::-1]
대신 사용하십시오 reversed
.
last_ten = Messages.objects.filter(since=since).order_by('-id')[:10][::-1]
마지막 X 레코드를 id 별로 내림차순으로 정렬하려면 필터 이후 필요하지 않다고 생각합니다.
last_ten = Messages.objects.all().order_by('-id')[:10]
-id 를 사용하면 내림차순으로 정렬됩니다. 이것이 도움이 되었기를 바랍니다!
참고 URL : https://stackoverflow.com/questions/20555673/django-query-get-last-n-records
반응형
'Program Tip' 카테고리의 다른 글
Internet Explorer 8에서 innerWidth를 가져 오는 방법 (0) | 2020.12.07 |
---|---|
데이터를 업데이트하는 SQL MERGE 문 (0) | 2020.12.07 |
Sql Server 2008에서 테이블 변수 자르기 / 지우기 (0) | 2020.12.07 |
컴파일러가 분명히 초기화되지 않은 변수를 감지하지 못함 (0) | 2020.12.07 |
MS-SQL Server에서 별칭이 지정된 열에 대해 GROUP BY를 수행하려면 어떻게합니까? (0) | 2020.12.07 |