У меня возникла проблема с объектами python datetime, в частности с datetime.timedelta().
Я пытаюсь найти разницу в днях в виде числа, а не экземпляра datetime.timedelta(). Я использую Django версии 3.2 и получаю значения даты из формы на шаблоне
[ Предположим, что все необходимые библиотеки импортированы, потому что здесь я сталкиваюсь не с ошибкой импорта]
вот код из шаблона - dateform.html
<span style="position: absolute; right: 0%;font-size: 0.5em;" class="pull-left">
<form method="GET" action="{% url 'shifts:timeSheetFiltered' %}">
{% csrf_token %} start
<input type="date" id="start-date"
name="start-date" >
end
<input type="date" id="end-date"
name="end-date" >
<button type="submit" class="btn btn-xs btn-info"><i class="fa fa-filter"></i></button>
</span>
</form>
</span>
вот функция представления в одном из представлений django.
def timeSheetFiltered(request):
end_date = forms.DateField().clean(request.GET.get('end-date'))
start_date = forms.DateField().clean(request.GET.get('start-date'))
num_days = end_date - start_date
num_weeks = math.ceil(num_days/7)
week_pack = []
counter = 0
while counter <= num_days:
week_pack.append(start_date + timedelta(days=counter))
counter = counter + 1
shifts = Shift.objects.filter(time_added__range = [start_date,end_date])
context = {
'shifts': shifts,
'start_date': start_date,
'end_date': end_date,
'week_pack': week_pack,
'num_weeks': num_weeks
}
return render(request, 'shifts/timeSheetFiltered.html', context)
Теперь при попытке обработать запрос, я знаю, что переменная num_days возвращает datetime.timedelta(days={what-ever-the difference-here})
. Мне не нужен этот объект, как я могу извлечь количество дней как простое число (Integer) из datetime.timedelta()?
Вы можете использовать days
свойство timedelta
как
num_days = (end_date - start_date).days