好男人,我做了一个算法,这个给你带来自本周(周一)开始,直到所有的记录,今天
例如,如果你在你的应用程序是这样一种模式:
from django.db import models
class x(models.Model):
date = models.DateField()
from datetime import datetime
from myapp.models import x
start_date = datetime.date(datetime.now())
week = start_date.isocalendar()[1]
day_week =start_date.isoweekday()
days_quited = 0
less_days = day_week
while less_days != 1:
days_quited += 1
less_days -= 1
week_begin = datetime.date(datetime(start_date.year,start_date.month,start_date.day-days_quited))
records = x.objects.filter(date__range=(week_begin, datetime.date(datetime.now())))
如果你在6月17日(星期一)和6月22日(今天)之间的范围内添加一些记录,你会看到所有这些记录,并且如果你添加更多的记录,例如明天的日期或日期下周一你不会看到这些记录。
如果你想一周的unntil现在记录你只有把这个:
start_date = datetime.date(datetime(year, month, day))
records = x.objects.filter(date__range=(week_begin, datetime.date(datetime.now())))
希望这有助于! :D
后来有5个版本的django,添加了'ExtractWeekDay'关键字。注意:仍然需要在django 1.5中使用.extra()函数(如问题所述)。 – tmarthal