Voici une façon d'avoir la base de données faire le travail pour vous:
farms = qs.values_list('farm', flat=True).distinct()
#values_list() is new in Django 1.0
valeur de retour doit évaluer à quelque chose comme:
(<Farm instance 1>, <Farm instance5>)
étaient des fermes qui auront des arbres dans cet ensemble de requêtes particulier.
Pour toutes les fermes qui ont des arbres, utilisez qs = Tree.objects
Gardez à l'esprit que si vous ajoutez order_by('some_other_column')
alors distinct s'appliquera aux combinaisons distinctes de « ferme » et « some_other_column », parce que d'autres colonnes sera également dans la requête SQL pour la commande. Je pense que c'est une limitation (pas une fonctionnalité prévue) dans l'API, il est décrit dans le documentation.
Par "unique" voulez-vous dire "distinct"? –