我遇到 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 文件中。

您可以将 timedeltadays 属性 用作

num_days = (end_date - start_date)<b>.days</b>