我希望为我的模型构建一个 Django 查询,让我的过滤器随着查询的进行而改变。
我有一个Activity
我正在查询的模型。每个对象都有一个字段,我正在查询存储在一个日期范围内postal_code
的数组中的多个邮政编码。postal_codes_to_query
我想确保在每个邮政编码中均匀分布对象。我的数据库有数百万个活动,所以当我查询有限制时,我只会activities
在早期收到匹配的邮政编码postal_codes_to_query
。我当前的查询如下:
Activity.objects.filter(postal_code__in=postal_codes_to_query).filter(start_time_local__gte=startTime).filter(start_time_local__lte=endTime).order_by('start_time_local')[:10000]
如果我要搜索 20 个邮政编码,理想情况下,我希望收到 10000 ,我查询的每个邮政编码activities
都有 500 。activities
这在 Django 中可能吗?如果没有,是否有一些我可以编写的自定义 SQL 来实现这一点?我正在使用 Heroku Postgres 数据库以防万一。