Следующая строка создает список существующих точек данных:Возвращает список отсутствующих значений?
datapoint_list = organisation.datapoint_set.filter(timestamp__gte=startDate, timestamp__lte=endDate)
Я хотел бы return
в формате JSON даты от startDate
до lastDate
, для которых не существует ни одна из существующих DataPoint.
Как это можно сделать?
Моя лучшая идея заключается в следующем:
class Missing(generics.ListAPIView)
...
queryset = organisation.datapoint_set.filter(timestamp__gte=startDate, timestamp__lte=endDate)
Loop over the datesdelta
Loop over the datapoints
If datapoint.timestamp == datedelta.timestamp then
Push timestamp to object
Continue
End if
End loop
End loop
Return object
Но мне не удалось в сквозных датах. А может быть, есть еще более простой способ сделать это?
EDIT:
datesdelta определяются параметры запроса и должен взглядом по умолчанию для отсутствующих точек данных в последней неделе:
days = int(self.request.query_params.get('days', 7))
startDate = datetime.today() - timedelta(days)
endDate = datetime.today()
QuerySet содержит:
<DataPoint: Value: 123, Timestamp: 2015-12-15>
<DataPoint: Value: 123, Timestamp: 2015-12-11>
<DataPoint: Value: 123, Timestamp: 2015-12-10>
<DataPoint: Value: 123, Timestamp: 2015-12-09>
<DataPoint: Value: 123, Timestamp: 2015-12-08>
Выход JSON должен выглядеть примерно так:
[
'date': '2015-12-16',
'date': '2015-12-14',
'date': '2015-12-13',
'date': '2015-12-12',
'date': '2015-11-07'
}
Мой вопрос: как получить от этого набора запросов к этому выводу.
Можете ли вы дать более подробную информацию пожалуйста, например, о содержании списка дат и о том, как он выглядит так, как вы хотите? – DhiaTN
Спасибо за интерес к вопросу @DhiaTN! Я добавил дополнительные сведения в редактирование. – user1283776