J'essaye d'obtenir le dernier objet modèle Django mais je n'arrive pas à réussir.
Aucun de ces éléments ne fonctionne:
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
python
django
django-models
django-queryset
donateur
la source
la source
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
NewsPostImage.objects.filter(newsPostTarget=img_id).first()
. J'espère que cela aide.Réponses:
obj= Model.objects.filter(testfield=12).order_by('-id')[0]
la source
Voir la documentation de django: https://docs.djangoproject.com/en/dev/ref/models/querysets/#latest
Vous devez spécifier un champ dans latest (). par exemple.
obj= Model.objects.filter(testfield=12).latest('testfield')
Ou si la méta de votre modèle spécifie get_latest_by, vous pouvez laisser l'
field_name
argument àearliest() or latest()
. Django utilisera le champ spécifiéget_latest_by
par défaut.la source
dernier () dernier ()
Utilisez le dernier ():
en utilisant la dernière ():
ModelName.objects.latest('id')
la source
latest
est vraiment conçu pour fonctionner avec les champs de date (cela fonctionne probablement aussi avec d'autres types à ordre total, mais pas sûr). Et la seule façon de l'utiliser sans spécifier le nom du champ est de définir l'get_latest_by
attribut meta, comme mentionné ici .la source
Model.objects.latest('id')
obj= Model.objects.filter(testfield=12).order_by('-id')[:1]
est la bonne solutionla source