2012-03-23 184 views

回答

291
Reserved.objects.filter(client=client_id).order_by('-check_in') 

注意check_in之前的-

Django Documentation

+0

這就是它的可愛。謝謝。 – Ayush 2017-10-26 04:57:52

43
Reserved.objects.filter(client=client_id).order_by('-check_in') 

連字符 「 - 」,在 「CHECK_IN」 的前面表示降序排列。暗示升序。

我們不必在filter()之前添加all()。這仍然有效,但是當你想要從根QuerySet獲取所有對象時,只需要添加all()。

更多關於此這裏: https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-specific-objects-with-filters

+0

比接受的答案更清潔,沒有理由擁有.all()。filter(xxx)。 – 2016-03-06 07:26:14

9

它的工作原理去除.all()

Reserved.objects.filter(client=client_id).order_by('-check_in') 
+3

這與@ leonardo-z的答案基本相同,不是嗎? – 2016-09-26 16:49:52

+1

而不是重新發布相同的答案,它投票。 – AKSiddique 2017-07-05 07:37:42

9

您還可以使用下面的指令:

Reserved.objects.all().filter(client=client_id).order_by('check_in').reverse() 
+1

你可以,但我強烈懷疑讓SQL服務器處理命令更有效率,至少在理論上是這樣。不過,這很好,很清楚。 – 2016-09-26 16:51:11

10

按升序排列:

Reserved.objects.filter(client=client_id).order_by('check_in') 

爲降序:

1. Reserved.objects.filter(client=client_id).order_by('-check_in') 

2. Reserved.objects.filter(client=client_id).order_by('check_in')[::-1] 
0

這是爲我工作。

latestsetuplist = SetupTemplate.objects.order_by('-creationTime')[:10][::1] 
0

添加 - 將按降序排列。 您也可以通過爲模型的元素添加默認排序來設置此項。這意味着當你做一個查詢時,你只需要做MyModel.objects.all(),它會以正確的順序出來。

class MyModel(models.Model): 

    check_in = models.DateField() 

    class Meta: 
     ordering = ('-check_in',)