Creo que la combinación izquierda puede ayudar en esta situación. Su objetivo es ordenar las ciudades por el último punto PM.
Suponiendo que la clave principal de su city
la tabla es city_id, y una tabla separada llamada city_pm
tiene los puntos PM, y que tienes dos modelos City y City_Pm...
En su opinión:
cities = City.objects.all()
En tus modelos:
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
En su plantilla:
{% for city in cities %}
{{ city.get_latest_pm }}
{% endfor %}