views.py 文件源码

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

项目:transportation-backend 作者: hackoregon 项目源码 文件源码
def get_queryset(self):
        params = self.request.query_params
        excludeStatuses = ['COMPLETED', 'COMPLETED', 'COMPLETE', 'DENIED', 'CANCELED']
        minDist = params.get('distance', 100)
        minDays = params.get('days', 14)
        # queryDate = parser.parse(self.request.query_params['date']).date()
        # startDate = queryDate - datetime.timedelta(days=minDays)
        # endDate = queryDate + datetime.timedelta(days=minDays)
        # queryDateRange = DateRange(startDate, endDate)
        defaultStart = datetime.date.today() - datetime.timedelta(days=2)
        defaultEnd = defaultStart + datetime.timedelta(days=365)
        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')
        geoaddy = AddressGeocode.objects.using('geocoder').raw("SELECT g.rating, ST_X(g.geomout) AS lon, ST_Y(g.geomout) AS lat, pprint_addy(addy) AS address FROM geocode(%s) as g LIMIT 1", [self.request.query_params['address']])[0]
        queryPoint = GEOSGeometry('POINT({} {})'.format(geoaddy.lon, geoaddy.lat))
        filteredFeatures = Feature.objects\
            .filter(canonical_daterange__overlap=queryDateRange)\
            .filter(geom__distance_lte=(queryPoint, D(m=minDist)))\
            .exclude(canonical_daterange__overlap=excludeDateRange)\
            .exclude(canonical_status__in=excludeStatuses)

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

        return filteredFeatures
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号