Acredito que as associações à esquerda podem ajudar nessa situação. Seu objetivo é ordenar as cidades pelo último ponto PM.
Assumindo a chave primária da sua
city
table é city_id e uma tabela separada chamada city_pm
detém os pontos PM, e que você tem dois modelos City e City_Pm... Na sua opinião:
cities = City.objects.all()
Em seus 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
No seu modelo:
{% for city in cities %}
{{ city.get_latest_pm }}
{% endfor %}