有時候想用distinct去掉queryset中的重複項,看django文章中是這麼說的
>>> author.objects.distinct()
[...]
>>> entry.objects.order_by('pub_date').distinct('pub_date')
[...]
>>> entry.objects.order_by('blog').distinct('blog')
[...]
>>> entry.objects.order_by('author', 'pub_date').distinct('author', 'pub_date')
[...]
>>> entry.objects.order_by('blog__name', 'mod_date').distinct('blog__name', 'mod_date')
[...]
>>> entry.objects.order_by('author', 'pub_date').distinct('author')
[...]
note
django文件中特別介紹了,distinct的列一定要先order_by並且在第一項。
when you specify field names, you must provide anorder_by()
in thequeryset
, and the fields inorder_by()
must start with the fields indistinct()
, in the same order.
for example,select
distinct
on(a)gives you the first row for each value in columna
. if you don』t specify an order, you』ll get some arbitrary row.
完全照做,用的mysql資料庫最後出現了這樣的警告:
raise notimplementederror('distinct on fields is not supported by this database backend')
notimplementederror: distinct on fields is not supported by this database backend
告訴我資料庫不支援。
當然可以這樣:
items =for item in query_set:
if item not in items:
如果想用distinct的話,在distinct前面加上values或values_list
u.comment_set.values("forum").distinct()
[, ]
u.comment_set.values_list("forum", flat=true).distinct()
[1l, 2l]
其實就相當於values_list獲得了乙個陣列然後set()
在django中使用logging
django中似乎沒有專門支援logging的module。想在自己開發程式中使用一下log功能,記錄訪問情況,和輸入debug的一些資訊。於是google到一段 使用的python的標準庫logging,目前工作還算正常.url import logging import threading fr...
在Django中使用group by
在django中怎樣使用group by語句呢?找了很多資料,都沒有看到好的,在這裡分享兩種方法給大家 首先,我們先建乙個簡單的模型。class book models.model name models.charfield u 書名 max length 255,db index true aut...
在Django中使用mysql
在django中使用mongodb 1 可以選擇虛擬環境,進入開發環境的虛擬空間,不知道的請看傳送門 2 基本包的版本 django 1.11.8 mongoengine 0.15.0 3 安裝包 pip install mysqlclient4 建立乙個新的django專案,並指定到虛擬空間的py...