Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment créer une table temporaire pour trier la même colonne selon deux critères à l'aide de l'ORM de Django ?

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 %}