モデルが「ショップ」であるとしましょう
class Shop(models.Model):
street = models.CharField(max_length=150)
city = models.CharField(max_length=150)
# some of your models may have explicit ordering
class Meta:
ordering = ('city',)
Metaクラスordering属性セット(タプルまたはリスト)がある場合があるため、パラメーターなしで使用して、を使用order_by()するときに順序をクリアできますdistinct()。()の下のドキュメントを参照してくださいorder_by
デフォルトの順序でさえも、クエリに順序を適用したくない場合は、パラメーターを指定せずにorder_by()を呼び出します。
注文でdistinct()の使用に関する問題について説明しているメモにあります。distinct()
DBを照会するには、次を呼び出す必要があります。
models.Shop.objects.order_by().values('city').distinct()
辞書を返します
また
models.Shop.objects.order_by().values_list('city').distinct()
ValuesListQuerySetこれは、にキャストできるを返しますlist。flat=Trueに追加しvalues_listて、結果をフラット化することもできます。
参照:フィールドごとにクエリセットの個別の値を取得する