[英](Django) How to use distinct() function?
我已經嘗試了本文檔中的所有示例:
https://docs.djangoproject.com/en/dev/ref/models/querysets/#distinct
但是我無法使它工作!
輸出如下所示:
In [1]: from restoranya.psmenu.models import *
In [2]: secenekler = SecenekGruplari.objects.all()
In [3]: print secenekler
[<SecenekGruplari: Acı Seçimi>, <SecenekGruplari: Ek Malzemeler>, <SecenekGruplari: Ekstra>, <SecenekGruplari: Çoklu Seçim>, <SecenekGruplari: Ek Malzemeler>, <SecenekGruplari: Deneme>]
In [4]: secenekler = SecenekGruplari.objects.distinct("isim")
In [5]: print secenekler
[<SecenekGruplari: Acı Seçimi>, <SecenekGruplari: Ek Malzemeler>, <SecenekGruplari: Ekstra>, <SecenekGruplari: Çoklu Seçim>, <SecenekGruplari: Ek Malzemeler>, <SecenekGruplari: Deneme>]
In [6]: secenekler = SecenekGruplari.objects.order_by("isim").distinct("isim")
In [7]: print secenekler
[<SecenekGruplari: Acı Seçimi>, <SecenekGruplari: Çoklu Seçim>, <SecenekGruplari: Deneme>, <SecenekGruplari: Ek Malzemeler>, <SecenekGruplari: Ek Malzemeler>, <SecenekGruplari: Ekstra>]
我應該怎么做?
僅在Django 1.4+中支持將參數傳遞給distinct
。 如果您使用的是次要版本,則表示您不走運。 即使那樣,Postgresql也只支持它,因此,如果您使用的是MySQL之類的東西。 你真倒霉
關於什么
secenekler = SecenekGruplari.objects.values("isim").distinct()
?
克里斯是對的, 但我要補充一點:
如果使用.distinct('isim')
,則意味着您正在從數據庫中選擇所有字段,但是不包含在您的distinct子句中的字段的值將是不可預測的。 每次您可能會得到不同的結果。
如果您不在乎,因為您無論如何都不打算使用其他字段,那么最好不要從數據庫中獲取它們。 然后,您可以使用普通的distinct子句:
queryset = SecenekGruplari.objects.only("isim").distinct()
要么:
isim_values = SecenekGruplari.objects.values_list("isim", flat=True).distinct()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.