Django Queryset подсчет состояния между датами недели неподходящие данные поступают
Я хочу вычислить количество активных статусов между недельными датами. то, что я пытаюсь сделать, приведено ниже.
date_list : ['2022-04-06', '2022-04-13', '2022-04-20', '2022-04-27', '2022-05-04', '2022-05-11', '2022-05-18', '2022-05-25', '2022-06-01', '2022-06-08', '2022-06-15', '2022-06-22', '2022-06-29']
def get_status_count(date_list):
status_dict = []
for i in range(0,len(date_list)):
week_list = date_list[i:i-7]
print(week_list,'ttttttttt')
datetime_object = datetime.strptime(str(date_list[i]), '%Y-%m-%d')
last_date = datetime_object + timedelta(days=-7)
dateStr = last_date.strftime("%Y-%m-%d")
tsts = [dateStr,date_list[i]]
count = Status.objects.filter(arrival_date__range = tsts).values("arrival_date").annotate(dcount=Count('arrival_date'))
status_dict.append({"date" : date_list[i],"count":count})
return status_dict
Выход, который я получаю, выглядит так:
{'date': '2022-04-06', 'count': <QuerySet [{'arrival_date': '2022-04-06', 'dcount': 1}]>}{'date': '2022-04-13', 'count': <QuerySet [{'arrival_date': '2022-04-06', 'dcount': 1}]>}{'date': '2022-04-20', 'count': <QuerySet []>}{'date': '2022-04-27', 'count': <QuerySet []>}{'date': '2022-05-04', 'count': <QuerySet []>}{'date': '2022-05-11', 'count': <QuerySet []>}{'date': '2022-05-18', 'count': <QuerySet []>}{'date': '2022-05-25', 'count': <QuerySet []>}{'date': '2022-06-01', 'count': <QuerySet []>}{'date': '2022-06-08', 'count': <QuerySet []>}{'date': '2022-06-15', 'count': <QuerySet []>}{'date': '2022-06-22', 'count': <QuerySet []>}{'date': '2022-06-29', 'count': <QuerySet [{'arrival_date': '2022-06-28', 'dcount': 1}, {'arrival_date': '2022-06-29', 'dcount': 1}]>}
Но он не приходит, так как я хочу получить данные типа :
[{'arrival_date': '2022-04-06', 'dcount': 1},{'arrival_date': '2022-04-13', 'dcount': 2},{'arrival_date': '2022-04-20', 'dcount': 0}, и так далее.....]
В данных базы данных у меня есть :
+----+-----------+--------+-------------+--------------+--------------+--------+
| id | number | state | name | checker_name | arrival_date | locals |
+----+-----------+--------+-------------+--------------+--------------+--------+
| 1 | 1665022 | close | ab | operator | 2022-04-08 | 166788 |
| 2 | 1665021 | closes | cd | operator1 | 2022-04-13 | 166782 |
| 4 | 1665021 | closes | ef | operator1 | 2022-04-06 | 166783 |
+----+-----------+--------+-------------+--------------+--------------+--------+
Может ли кто-нибудь, пожалуйста, помочь мне связать это как то, что я делаю неправильно здесь в моем запросе и в моем коде python? Я застрял здесь, я не знаю, почему это происходит, есть ли у кого-нибудь идеи или решения?