source

장고에서 필터로 최신 기록 가져오기

lovecheck 2023. 9. 14. 23:20
반응형

장고에서 필터로 최신 기록 가져오기

나는 최신 장고 모델 물체를 구하려고 하는데 성공할 수 없을 것 같습니다.

이 중 어느 것도 작동하지 않습니다.

obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)

django: https://docs.djangoproject.com/en/dev/ref/models/querysets/ #http://에서 문서 참조

필드를 최신()으로 지정해야 합니다.

obj= Model.objects.filter(testfield=12).latest('testfield')

또는 모델의 메타에서 get_latest_by를 지정한 경우에는 다음을 생략할 수 있습니다.field_name의론.earliest() or latest(). 장고는 다음에 지정된 필드를 사용합니다.get_latest_by기본적으로

obj= Model.objects.filter(testfield=12).order_by('-id')[0]

지난 주에 최근의 일

마지막에 서명():

ModelName.objects.last()

최신 버전 사용:

ModelName.objects.latest('id')

latest는 실제로 날짜 필드에서 작동하도록 설계되었습니다(아마도 다른 전체 순서 유형에서도 작동할 수 있지만 확실하지는 않습니다).필드 이름을 지정하지 않고 사용할 수 있는 유일한 방법은get_latest_by메타 속성, 여기에 언급된 바와 같이.

obj= Model.objects.filter(testfield=12).order_by('-id')[:1]올바른 해결책입니다.

obj = Model.objects.filter(testfield=12).order_by('id').latest('id')
  1. 필요한 필드를 기준으로 필터링(이 경우 테스트 필드)

Model.objects.필터(테스트필드=12)

  1. 최신 레코드를 얻으려면 먼저 쿼리 세트를 정렬해야 합니다.기준에 따라 마지막 기록을 반환할 것을 알 수 있도록 말입니다.

이제 기본 키를 기준으로 결과 순서를 정합니다(대부분 pk=id).

Model.objects.필터(testfield=12.order_bypassid')

https://docs.djangoproject.com/en/4.0/ref/models/querysets/ #주문별

기본적으로 QuerySet에서 반환되는 결과는 모델의 Meta에서 Ordering 옵션에 의해 주어진 Ordering Tuple에 의해 순서가 정해집니다.order_by 메서드를 사용하여 쿼리 세트 단위로 이 작업을 재정의할 수 있습니다.

  1. 쿼리를 설정한 후 정렬합니다.필요한 기준에 따라 최신 정보를 얻으십시오. 이 경우 ID입니다.

Model.objects.필터(testfield = 12.order_bypassid').latest(최신)

여기 아래에 있는 이것과 비교해 볼 수 있습니다.

image

latest('created')와 같은order_by('-created').first()제가 틀렸다면 고쳐주세요.

언급URL : https://stackoverflow.com/questions/15675672/get-the-latest-record-with-filter-in-django

반응형