J'ai ce modèle Django:Obtenez toutes les combinaisons disponibles de deux champs à travers l'ORM Django?
class Lecture(models.Model):
lecture_number = models.CharField(_('lecture number'), max_length=20)
title = models.CharField(_('title'), max_length=100)
term = models.IntegerField(_('term'), choices=TERM, db_index=True)
year = models.IntegerField(_('year'), db_index=True)
term
peut être soit 1
ou 2
(printemps ou automne). Maintenant, je veux lister tous les termes pour lesquels il y a des conférences, par ex. quelque chose comme ((2007, 2), (2008, 1), (2008, 2), (2009, 1), (2009, 2), (2010, 1))
. La liste n'a pas besoin d'être triée. Est-il possible de générer cette liste à travers l'ORM efficacement? La meilleure solution que je trouve est:
term_list = set(Lecture.objects.values_list('year', 'term'))
Mais cet appel ORM retourne encore un résultat pour chaque Lecture
et réduit en Python, il pourrait se développer lentement avec un grand nombre de Lecture
s.
Désolé, mais cela n'aide pas vraiment. Je veux seulement lister les termes qui ont des conférences dans la base de données. Mon interlocuteur dans la question le fait, quoique inefficacement. Ce que je cherche, c'est un appel ORM efficace qui me donne le même résultat. –
a mis à jour ma réponse – Jerzyk