Je crois que les jointures gauches peuvent aider dans cette situation. Votre objectif est de classer les villes par le dernier point PM.
En supposant la clé primaire de votre city
table est city_id et une table distincte appelée city_pm
détient les points PM, et que vous avez deux modèles City et City_Pm...
À votre avis :
cities = City.objects.all()
Dans vos modèles :
class City(models.Model):
# fields ...
def get_latest_pm(self):
try:
return City_Pm.objects.filter(city_id=self.pk).order_by("-date")[:1].get()
except:
return None
Dans votre modèle :
{% for city in cities %}
{{ city.get_latest_pm }}
{% endfor %}