django.views.generic.date_based.archive_(month|day) includes first day of next (month|day)
archive_month view uses range when searching for entries, but when date_field is of type date (and not datetime), range includes day following specified period
Attachments
(1)
- 7602.patch
(10.4 KB
) - added by Collin Grady 17 years ago.
- added tests, verified failure->success change
Download all attachments as:
.zip
Change History
(8)
| Has patch: |
set
|
| Needs tests: |
set
|
| milestone: |
→ 1.0
|
| Triage Stage: |
Unreviewed → Accepted
|
| Owner: |
changed from nobody to Collin Grady
|
| Keywords: |
aug22sprint added
|
| Resolution: |
→ fixed
|
| Status: |
new → closed
|
Index: django/views/generic/date_based.py =================================================================== --- django/views/generic/date_based.py (revision 7825) +++ django/views/generic/date_based.py (working copy) @@ -129,7 +129,10 @@ last_day = first_day.replace(year=first_day.year + 1, month=1) else: last_day = first_day.replace(month=first_day.month + 1) - lookup_kwargs = {'%s__range' % date_field: (first_day, last_day)} + lookup_kwargs = { + '%s__gte' % date_field: first_day, + '%s__lt' % date_field: last_day + } # Only bother to check current date if the month isn't in the past and future objects are requested. if last_day >= now.date() and not allow_future: @@ -188,7 +191,10 @@ # Calculate first and last day of week, for use in a date-range lookup. first_day = date last_day = date + datetime.timedelta(days=7) - lookup_kwargs = {'%s__range' % date_field: (first_day, last_day)} + lookup_kwargs = { + '%s__gte' % date_field: first_day, + '%s__lt' % date_field: last_day + } # Only bother to check current date if the week isn't in the past and future objects aren't requested. if last_day >= now.date() and not allow_future: