あなたが探しているのは、前の週の同じ暦週に属するすべてのエントリであると思います。
これでうまくいくはずです:
class Entry(models.Model):
pub_date = models.DateField([...])
オブジェクトを取得するには:
from datetime import timedelta
from django.utils import timezone
some_day_last_week = timezone.now().date() - timedelta(days=7)
monday_of_last_week = some_day_last_week - timedelta(days=(some_day_last_week.isocalendar()[2] - 1))
monday_of_this_week = monday_of_last_week + timedelta(days=7)
Entry.objects.filter(created_at__gte=monday_of_last_week, created_at__lt=monday_of_this_week)
先週の日曜日を取得するために 6 日を追加する代わりに、今週の月曜日を取得するために 7 日を追加したことと、(__lte= の代わりに) created_at__lt=monday_of_this_week を使用したことに注意してください。pub_date が DateTimeField の場合、now().date() を使用すると時刻が 00:00:00 になるため、日曜日のオブジェクトが含まれないためです。
これは、代わりに日曜日を週の最初の日と見なすように簡単に調整できますが、 isocalendar() はそれを最後と見なすので、それを採用しました。
Django < 1.4 を使用している場合は、次を使用します。
from datetime import date, timedelta
some_day_last_week = date.today() - timedelta(days=7)
それ以外の:
from datetime import timedelta
from django.utils import timezone
some_day_last_week = timezone.now().date() - timedelta(days=7)