Вярвам, че лявото присъединяване може да помогне в тази ситуация. Вашата цел е да подредите градовете според последната PM точка.
Приемайки първичния ключ на вашия city
таблицата е city_id и отделна таблица, наречена city_pm
държи PM точките и че имате два модела City и City_Pm...
Според вас:
cities = City.objects.all()
Във вашите модели:
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
Във вашия шаблон:
{% for city in cities %}
{{ city.get_latest_pm }}
{% endfor %}