J'essaie d'obtenir le dernier objet modèle de Django mais je n'y arrive pas.
Ni l'un ni l'autre ne fonctionne :
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
J'essaie d'obtenir le dernier objet modèle de Django mais je n'y arrive pas.
Ni l'un ni l'autre ne fonctionne :
obj = Model.objects.filter(testfield=12).latest()
obj = Model.objects.latest().filter(testfield=12)
Voir la documentation de django : https://docs.djangoproject.com/en/dev/ref/models/querysets/#latest
Vous devez spécifier un champ dans latest(). ex.
obj= Model.objects.filter(testfield=12).latest('testfield')
Ou si la Meta de votre modèle spécifie get_latest_by, vous pouvez laisser de côté l'élément field_name
argument pour earliest() or latest()
. Django utilisera le champ spécifié dans get_latest_by
par défaut.
latest
est réellement conçu pour fonctionner avec des champs de date (il fonctionne probablement aussi avec d'autres types de totaux ordonnés, mais je n'en suis pas sûr). Et la seule façon de l'utiliser sans spécifier le nom du champ est de définir l'attribut get_latest_by
méta attribut, comme mentionné aquí .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.