Estou tentando obter o objeto de modelo Django mais recente, mas não consigo ter sucesso.
Nenhum deles está funcionando:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
Estou tentando obter o objeto de modelo Django mais recente, mas não consigo ter sucesso.
Nenhum deles está funcionando:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
NewsPostImage.objects.filter(newsPostTarget=img_id).first()
. Espero que ajude.Respostas:
obj= Model.objects.filter(testfield=12).order_by('-id')[0]
fonte
Veja os documentos de django: https://docs.djangoproject.com/en/dev/ref/models/querysets/#latest
Você precisa especificar um campo em latest (). por exemplo.
obj= Model.objects.filter(testfield=12).latest('testfield')
Ou se o Meta do seu modelo especifica get_latest_by, você pode deixar de fora o
field_name
argumento paraearliest() or latest()
. Django usará o campo especificadoget_latest_by
por padrão.fonte
último () mais recente ()
Último Usign ():
usando o mais recente ():
ModelName.objects.latest('id')
fonte
latest
é realmente projetado para funcionar com campos de data (provavelmente também funciona com outros tipos de ordem total, mas não tenho certeza). E a única maneira de usá-lo sem especificar o nome do campo é definindo oget_latest_by
metaatributo, conforme mencionado aqui .fonte
Model.objects.latest('id')
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
é a solução certafonte
Você pode fazer uma comparação com isso aqui.
latest('created')
é o mesmo queorder_by('-created').first()
Por favor me corrija se eu estiver erradofonte