2012-05-01 7 views
1

私は特定のテーブルから別の行を取得する必要があるdjangoモデルクエリを持っていますが、何らかの理由でそれをフェッチしていません。DjangoモデルDistinct句

は私はあなたの入力あなたは明確なVolunteercontactsモデルと明確なname列の値を区別する必要があり

クエリ

Volunteercontacts.objects.order_by('name')- gives me the expected answer ie;ordering by name 
Volunteercontacts.objects.order_by('name').distinct('name')- does not eliminate the duplicate 
+2

https://docs.djangoproject.com/en/dev/ref/models/querysets/ #distinctおよびhttp://stackoverflow.com/questions/453477/queryset-api-distinct-does-not-work/460702#460702 – dm03514

+0

出力を表示します。また、メソッド呼び出しの順序を逆にしてみてください。 – Marcin

答えて

1

を知ってみましょう。あなたは別個に使用できる別個Volunteercontactsモデルについて

()が、この場合には効果がありません:異なる列について

Volunteercontacts.objects.order_by('name').distinct() 

もしvalue listの辞書または配列を使用できる値:

Volunteercontacts.objects.values_list('name', 
             flat=True).order_by('name').distinct() 

また、個別メソッドでフィールド名を指定できるのはPostgreSQLでのみ可能です。

+0

なぜあなたは - Volunteercontacts.objects.order_by( 'name')の問題を詳しく説明できますか?distinct() は動作しません..第2の例は期待通りに動作します – user1050619

+0

@ user1050619、最初の例のdistinct()名前が「FOO」の1000x行。独自の主キーを持つ別個の行です)。 2番目の例では、異なる列の値が返されます。 –