#24076: Query may fail with pytz exception
----------------------------------------------+--------------------
Reporter: lvella | Owner: nobody
Type: Bug | Status: new
Component: Database layer (models, ORM) | Version: 1.6
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Easy pickings: 0 | UI/UX: 0
----------------------------------------------+--------------------
If I give date object as input to a filter on a DateTimeField field, like
this:
{{{
class Ticket(models.Model):
register_time = models.DateTimeField(auto_now_add=True)
day = datetime.strptime('2014-10-19', '%Y-%m-%d').date()
Ticket.objects.filter(register_time__gte=day)
}}}
I may get a pytz.exceptions.NonExistentTimeError exception. The exact
exception was:
pytz.exceptions.NonExistentTimeError: 2014-10-19 00:00:00
This date is the start of DST in my timezone:
{{{
TIME_ZONE = 'America/Sao_Paulo'
}}}
I believe this is a bug because Django tries to convert my input to a
datetime object before building the query, and in this case, this
conversion yields an invalid datetime.
This bug seems very related to issue #9596, because in these cases,
datetime should be converted to date, not the opposite.
A minimal showcase is attached. Unzip and run ./manage.py test
--
Ticket URL: <https://code.djangoproject.com/ticket/24076>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/049.8b424bb85678214eac3860338e7725b2%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.