Я пытаюсь получить последний объект модели Django, но мне это не удается.
Ни один из них не работает:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
Я пытаюсь получить последний объект модели Django, но мне это не удается.
Ни один из них не работает:
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()
. Надеюсь, это поможет.Ответы:
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
по умолчанию.источник
последний () последний ()
Использовать последний ():
используя latest ():
ModelName.objects.latest('id')
источник
latest
действительно предназначен для работы с полями даты (вероятно, он работает и с другими полностью упорядоченными типами, но не уверен). И единственный способ использовать его без указания имени поля - это установитьget_latest_by
атрибут meta, как упоминалось здесь .источник
Model.objects.latest('id')
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
правильное решениеисточник