0

次のようなクエリがあります。

last_orders = PsSiparis.objects.filter(kullanici = request.user).order_by("-id")[:4]
for order in last_orders:
    print order.restoran

そしてそれは出力します:

Bafra Pide 
Bafra Pide 
Deneme Restoran 
Bafra Pide

distinct() 属性を使用したいので、リストは次のようになります。

Bafra Pide
Deneme Restoran

しかし、私は道を見つけることができませんでした。どんな助けでも大歓迎です。

4

3 に答える 3

3

set重複を削除する を使用する必要があります。

>>> l = ['Bafra Pide','Bafra Pide','Deneme Restoran','Bafra Pide']
>>> s = set(l)
>>> for i in s:
...    print i
...
Bafra Pide
Deneme Restoran

実際のオブジェクトではなく、個々の名前をリストに追加する必要があります。

于 2012-06-30T15:49:33.943 に答える
1

.distinct()適切な SQL クエリを生成する簡単な方法がないため、スライスされたクエリを呼び出すことはできません。などを使用して後処理する必要がありますset

于 2012-06-29T20:25:12.763 に答える
0

Django には、クエリの等しくない結果を選択するメソッドが付属しています。見てみましょう: Django のドキュメント、distinct()

エディション: また、Queryset を制限すると Queryset が返されるため、問題が発生することはありません。distinc() メソッドを適用した後にスライスすることをお勧めします。クエリセットの制限

于 2012-06-30T00:38:19.660 に答える