我遇到 python 日期时间对象的问题,特别是 datetime.timedelta()
I am facing a problem with python datetime objects, specifically the 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})
。我不想要那个对象,如何从 datetime.timedelta() 中提取天数作为普通数字(整数)?
当我 运行 脚本时,我以 /shifts/timeSheetFiltered/ 上的 TypeError 错误告终
必须是实数,而不是 datetime.timedelta。
指向它的行 num_weeks = math.ceil(num_days/7)
包含在我刚刚共享的 views.py 文件中。
您可以将 timedelta
的 days
属性 用作
num_days = (end_date - start_date)<b>.days</b>
我试图找出天数的差异,而不是 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})
。我不想要那个对象,如何从 datetime.timedelta() 中提取天数作为普通数字(整数)?
当我 运行 脚本时,我以 /shifts/timeSheetFiltered/ 上的 TypeError 错误告终
必须是实数,而不是 datetime.timedelta。
指向它的行 num_weeks = math.ceil(num_days/7)
包含在我刚刚共享的 views.py 文件中。
您可以将 timedelta
的 days
属性 用作
num_days = (end_date - start_date)<b>.days</b>