我剛開始學習如何做查詢,在我的Django應用程序,我有一個查詢,讓我按日期過濾新用戶的加入列表:結果限制在Django返回fromquery,蟒蛇
newUsers = User.objects.filter(is_active=True).order_by("-date_joined")
這據我瞭解,它給了我所有的用戶,按加入日期排序。我如何最好地限制它以讓我獲得最後的N個用戶?
對此,有沒有人推薦和閱讀材料,以瞭解有關這些類型的查詢的更多信息?
我剛開始學習如何做查詢,在我的Django應用程序,我有一個查詢,讓我按日期過濾新用戶的加入列表:結果限制在Django返回fromquery,蟒蛇
newUsers = User.objects.filter(is_active=True).order_by("-date_joined")
這據我瞭解,它給了我所有的用戶,按加入日期排序。我如何最好地限制它以讓我獲得最後的N個用戶?
對此,有沒有人推薦和閱讀材料,以瞭解有關這些類型的查詢的更多信息?
User.objects.filter(is_active=True).order_by("-date_joined")[:10]
會給你加入的最後10個用戶。詳細信息請參見the Django docs。
在構造的查詢上使用列表切片操作例如,
例如,這返回第5個對象(LIMIT 5):
Entry.objects.all()[:5]
這將返回至第十對象第六(OFFSET 5 LIMIT 5):
Entry.objects.all()[5:10]
讀Django文檔 http://docs.djangoproject.com/en/dev/topics/db/queries/
順便說一句,如果你只是劃分所有用戶的數量(例如,每個站點10個),你應該在dJango中感興趣的分頁,非常有幫助http://docs.djangoproject.com/en/dev/topics/pagination/#topics-pagination
User.objects.filter(is_active=True).order_by("-date_joined")[:10]
查詢集是懶惰[http://docs.djangoproject.com/en/dev/ref/models/querysets/。在對列表進行切片時,它實際上不會獲取所有條目,將它們加載到列表中,然後對它們進行切片。相反,它只提取最後10個條目。