def get_queryset(self,):
params = self.request.query_params
showNulls = params.get('showNulls', None)
sourceName = params.get('source_name', None)
filteredFeatures = Feature.objects.all()
if sourceName:
filteredFeatures = filteredFeatures.filter(source_name=sourceName)
defaultRange = 180
defaultStart = datetime.date.today() - datetime.timedelta(days=2)
defaultEnd = defaultStart + datetime.timedelta(days=defaultRange)
startDate = params.get('startDate', None)
endDate = params.get('endDate', None)
if startDate or endDate:
if startDate and endDate:
try:
queryDateRange = DateRange(lower=startDate, upper=endDate)
except DataError:
queryDateRange = DateRange(lower=defaultStart, upper=defaultEnd)
elif startDate:
calcEnd = parser.parse(startDate) + datetime.timedelta(days=3)
queryDateRange = DateRange(lower=startDate, upper=calcEnd)
else:
queryDateRange = DateRange(lower=defaultStart, upper=defaultEnd)
filteredFeatures = filteredFeatures.filter(canonical_daterange__overlap=queryDateRange)
elif not showNulls:
filteredFeatures = filteredFeatures.exclude(canonical_daterange=None).exclude(canonical_daterange__isempty=True)
print('featurecount', filteredFeatures.count())
return filteredFeatures
评论列表
文章目录