anh*_*ran 10 python django datetime django-queryset
我想做这样的事情:
entries = Entry.objects.filter(created_at__in = current_week())
Run Code Online (Sandbox Code Playgroud)
如何使其获得良好的性能.谢谢!
编辑:我仍然不知道current_week()功能.
Dan*_*man 27
使用__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])
Run Code Online (Sandbox Code Playgroud)
从Django 1.11 开始,我们可以使用Field lookup:week
Entry.objects.filter(created_at__week=current_week)
Run Code Online (Sandbox Code Playgroud)
根据 ISO-8601,它将为您提供从星期一到星期日的一周。
查询当前周:
from datetime import date
current_week = date.today().isocalendar()[1]
Run Code Online (Sandbox Code Playgroud)
isocalendar()将返回一个包含 3 个项目的元组:(ISO 年份、ISO 周数、ISO 工作日)。
| 归档时间: |
|
| 查看次数: |
6796 次 |
| 最近记录: |