Django - 订购

时间:2017-07-08 15:28:49

标签: django

我需要对我的对象进行排序以在我的模板中使用它。现在它就像:

sites = Site.objects.all().order_by('-date', '-group')[:10]

结果是例如:

  1. 今天group2
  2. 今天group2
  3. 昨天group2
  4. 昨天group1
  5. 三天前group2
  6. 四天前group2
  7. 我需要:

    1. 今天group2
    2. 昨天group2
    3. 三天前group2
    4. 四天前group2
    5. 今天group1
    6. 昨天group1
    7. 我只需要按组排序的10个最新网站。 我想在我的模板中使用它(第一组中的两个站点,第二组中的两个站点或下一组中的两个站点)。谢谢你的任何建议。

2 个答案:

答案 0 :(得分:0)

您应首先按group订购,然后按date订购。虽然有几种方法可以做到这一点。

在模型级别,您可以使用元属性ordering

实现此目的

在视图级别,使用查询sites = Site.objects.order_by( '-group','-date')[:10]'

是的,此时不需要all()

在模板级别,regroup模板标记。您需要使用嵌套的样本。

答案 1 :(得分:0)

我是这样做的。它可以正常工作。

{'name': 'Amruta', 'account_key': 4162}

这不是个好主意。以下是实现我的目标的正确方法:

我的观点:

sites = Site.objects.order_by('-date').order_by('-group', '-date')[:10]

我的模板:

sites = Site.objects.order_by('-date')[:10]