#24076: Query may fail with pytz exception
-------------------------------+------------------------------------
     Reporter:  lvella         |                    Owner:  nobody
         Type:  Bug            |                   Status:  new
    Component:  Documentation  |                  Version:  1.6
     Severity:  Normal         |               Resolution:
     Keywords:                 |             Triage Stage:  Accepted
    Has patch:  0              |      Needs documentation:  0
  Needs tests:  0              |  Patch needs improvement:  0
Easy pickings:  0              |                    UI/UX:  0
-------------------------------+------------------------------------
Changes (by aaugustin):

 * component:  Database layer (models, ORM) => Documentation
 * stage:  Unreviewed => Accepted


Comment:

 Thanks for the proposal. Unfortunately it won't work on databases other
 than PostgreSQL because they store datetimes in UTC. As a consequence
 they're vulnerable to the effect I described in question 3 in the
 [https://docs.djangoproject.com/en/1.7/topics/i18n/timezones/#troubleshooting
 timezone troubleshooting FAQ].

 I considered this issue carefully when I implemented support for time
 zones in Django 1.4. I was aware of the points you're making. I decided
 that forbidding mixing dates and datetimes outright was too extreme. It
 would require many changes in projects that work just fine because they
 never see datetimes during the DST switch.

 It's the left-hand-side of a lookup that determines the type, not the
 right-hand-side. Therefore the correct solution is to implement an
 explicit `__date` lookup i.e. #9596. That's the opposite of what you
 requested when you filed the ticket but that also what you recommended in
 your last comment:

 > the database type should be converted to date, dropping the time
 information in the process

 This solution requires timezone conversion of datetimes in the database
 but it shouldn't be an issue as it already exists to support the `dates()`
 and `datetimes()` queryset methods.

 I'm going to requalify this as a documentation issue because comparing
 dates with datetimes is probably a common error and I don't think the docs
 warn against it. I don't know where the warning should be added, though.

--
Ticket URL: <https://code.djangoproject.com/ticket/24076#comment:3>
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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.b982b60950f5bd4f54ff74cf6851910e%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to