2010-09-12 17 views
0

Pour une raison quelconque, les valeurs dupliquées ne sont pas éliminées.django, distinct() ne se comporte pas

records = Records.objects.all() 
records2 = records.values_list('columna','columna').distinct() 
print records2 

je dois faire quelque chose de stupide

+0

Utilisez-vous django-pyodbc? – cethegeek

+0

Utilisez-vous un 'order_by'? peut-être avez-vous défini un ordre par défaut dans la classe 'Meta' du modèle? Voir la note ici: http://docs.djangoproject.com/fr/dev/ref/models/querysets/#distinct –

+0

Je ne pense pas que j'utilise django-pyodbc. J'utilise mysql. – JPC

Répondre

0

Ma solution a été de jeter le values_list à un ensemble (pour supprimer les doublons) puis de nouveau à une liste

+2

La conversion de l'ensemble des résultats en un ensemble, puis en une liste entraînera beaucoup plus de frais généraux qu'une requête distincte (en utilisant un index!). Si le jeu de résultats est très grand, vous pourriez rencontrer de gros problèmes. Si l'ensemble des résultats (total, non distinct) est petit, la différence serait probablement négligeable. Quelque chose à être conscient de .. –

Questions connexes