views.py 文件源码

python
阅读 41 收藏 0 点赞 0 评论 0

项目:transportation-backend 作者: hackoregon 项目源码 文件源码
def get_queryset(self):
        params = self.request.query_params

        excludeStatuses = ['COMPLETED', 'COMPLETED', 'COMPLETE', 'DENIED', 'CANCELED']

        minDist = int(params.get('distance', 100))

        minDays = int(params.get('days', 14))

        defaultStart = datetime.date.today() - datetime.timedelta(days=2)
        defaultEnd = defaultStart + datetime.timedelta(days=180)
        startDate = params.get('startDate', defaultStart.isoformat())
        endDate = params.get('endDate', defaultEnd.isoformat())
        queryDateRange = DateRange(lower=startDate, upper=endDate)
        excludeDateRange = DateRange(lower='1800-01-01', upper='2014-12-31')

        collisionGraph = cache.get('featureGraph')
        featureIDs = set()
        for u, v, d in collisionGraph.edges(data=True):

            if d['daysApart'] <= minDays and d['distance'] <= minDist:
                featureIDs = {u, v} | featureIDs

        filteredFeatures = Feature.objects\
            .filter(pk__in=featureIDs)\
            .filter(canonical_daterange__overlap=queryDateRange)\
            .exclude(canonical_daterange__overlap=excludeDateRange)\
            .exclude(canonical_status__in=excludeStatuses)

        print('featurecount', filteredFeatures.count())

        return filteredFeatures
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号