关于python:django order_by查询集,升序和降序

django order_by query set, ascending and descending

如何按日期降序排列Django中的查询集?

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

我只想过滤掉所有由登记日期保留的内容。


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

注意在check_in之前的-

Django文件


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

"check-in"前面的连字符"-"表示降序。升序是隐含的。

我们不必在filter()之前添加all()。这仍然有效,但是您只需要在需要根查询集中的所有对象时添加all()。

更多信息:https://docs.djangoproject.com/en/dev/topics/db/queries/使用过滤器检索特定对象


您还可以使用以下说明:

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


对于升序:

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

对于降序:

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

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


它可以移除.all()

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


添加-将按降序排列。您还可以通过向模型的meta添加默认顺序来设置此值。这意味着当您执行查询时,只需执行mymodel.objects.all(),它将以正确的顺序出现。

1
2
3
4
5
6
class MyModel(models.Model):

    check_in = models.DateField()

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


  • 升序

    1
    Reserved.objects.all().filter(client=client_id).order_by('check_in')
  • 降序

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

  • 这里用-(连字符)表示降序。


    这对我有用。

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