Django/Python-检查日期是否在当前周内

Django/Python-检查日期是否在当前周内,python,django,datetime,django-queryset,Python,Django,Datetime,Django Queryset,我想这样做: entries = Entry.objects.filter(created_at__in = current_week()) 如何使其具有良好的性能。谢谢 编辑:我仍然不知道current\u week()函数。使用\u range。您首先需要实际计算一周的开始和结束时间: import datetime date = datetime.date.today() start_week = date - datetime.timedelta(date.weekday()) end

我想这样做:

entries = Entry.objects.filter(created_at__in = current_week())
如何使其具有良好的性能。谢谢


编辑:我仍然不知道
current\u week()
函数。

使用
\u range
。您首先需要实际计算一周的开始和结束时间:

import datetime
date = datetime.date.today()
start_week = date - datetime.timedelta(date.weekday())
end_week = start_week + datetime.timedelta(7)
entries = Entry.objects.filter(created_at__range=[start_week, end_week])

是的,这个问题是在两年前。今天有了更多的经验,我建议使用
arrow
,这样在处理日期时间时就不会那么麻烦了


结帐:

由于Django 1.11,您可以使用

根据ISO-8601,它将为您提供从周一到周日的一周

要查询当前周,请执行以下操作:

from datetime import date
current_week = date.today().isocalendar()[1] 

isocalendar()
将返回一个包含3项的元组:(ISO年ISO周数ISO工作日)。

为应用程序定义
当前周
。请写出定义“当前”周第一天所需的代码行。根据这一定义,下周的第一天将很容易。(一些人争论星期是从星期天开始还是从星期一开始,以及从1月1日开始的偏移量是如何工作的。)请提供代码来定义
当前星期
“我仍然不知道当前周()函数。如果无法定义“当前周”,则无法编写该程序。本周的定义必须写在代码中。如果你不能做到这一点,你就不能编写测试用例,也不能证明你的代码是有效的。如果无法从用户、主管或产品负责人处获得当前周的定义,则无法使用此代码。现在停止工作。得到一个定义。正如S.洛特指出的,对“周”有各种不同的解释@DanielRoseman在这里的回答假设Python默认从周一开始的周数。您会使用6而不是7作为时间增量吗?星期一=0,星期天=6这个答案对这个问题是正确的。我在想如何知道生日是否在本周内,但这不起作用。因为每个月的同一天在每年的不同星期。
from datetime import date
current_week = date.today().isocalendar()[1]