[python] Django에서 필터로 최신 기록 가져 오기

최신 Django 모델 개체를 얻으려고하지만 성공할 수 없습니다.

둘 다 작동하지 않습니다.

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



답변

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


답변

django의 문서를 참조하십시오 :
https://docs.djangoproject.com/en/dev/ref/models/querysets/#latest

latest ()에 필드를 지정해야합니다. 예.

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

또는 모델의 Meta가 get_latest_by를 지정하는 경우 field_name인수를 earliest() or latest(). Django는 get_latest_by기본적으로 지정된 필드를 사용합니다 .


답변

last () 최신 ()

Usign last () :

ModelName.objects.last()

latest () 사용 :

ModelName.objects.latest('id')


답변

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


답변

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


답변