只要这些记录不是第一个或最后一个X记录,就从Django查询集中排除某些记录

时间:2012-09-24 00:03:30

标签: django django-queryset

我有一个Django记录集(mysource),每天保持温度读数(for_date)。例如,当我可以获得最近40天的读数时,我想在图表上仅显示20天。为此,我执行以下操作:

for day_num in range (1, 32):
   if day_num % 2 == 1: # remove every 2nd day
      mysource = mysource.exclude(for_date__day=day_num)

...为了从查询集中删除每一秒读数。它工作得很好,但现在我想显示最近的阅读和最近的阅读,并确保我不排除查询集中的那些。是否有任何简单/快速的方法为Django查询集中的记录指定排除,只要这些记录既不位于查询集的开头X记录也不位于查询集的结束X记录中,所以我可以完成此操作?

1 个答案:

答案 0 :(得分:1)

使用查询获取要排除的记录的PK,然后在主要查询中排除它们(.exclude(pk__in=...)),