Ik denk dat left join's kunnen helpen in deze situatie. Je doel is om steden te bestellen voor het laatste PM-punt.
Uitgaande van de primaire sleutel van uw city
tabel is city_id, en een aparte tabel genaamd city_pm
de PM-punten heeft, en dat je twee modellen City en City_Pm hebt...
Naar jouw mening:
cities = City.objects.all()
In uw modellen:
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
In uw sjabloon:
{% for city in cities %}
{{ city.get_latest_pm }}
{% endfor %}