#29840: DJANGO query generated by ORM is invalid
-------------------------------------+-------------------------------------
     Reporter:  Arjunsingh           |                    Owner:
                                     |  Arjunsingh
         Type:  Bug                  |                   Status:  assigned
    Component:  Database layer       |                  Version:  2.1
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:
     Keywords:  django orm query     |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by Arjunsingh:

Old description:

> I have a django query which compares datetime like this -
>
>     filters = {'order_created_on__gte':'2018-10-10'}
>     queryset = model.objects.filter(**filters)
>     query = str(queryset.query)
>
> It creates a query  - select ... where order_created_on >= 2018-10-10
> 00:00:00
>
> When fired on postgres, it gives an error - syntax error at or near "00".
>
> If I fire the same query in db manually by replacing the date by
> '2018-10-10' it works.
>
> Now I actually tried the following ways, but all queries give the same
> text in the db query
>
>     filters = {'order_created_on__gte':datetime(2018-10-10)}
>     filters = {'order_created_on__year__gte':2018,
> 'order_created_on__month__gte':10, 'order_created_on__day__gte':10}
>
> Also used the range filter, all of the above insert this text in the
> final query -
>
>     where order_created_on >= 2018-10-10 00:00:00
>
> Updating the time zone too didnt have any effect rather than just
> removing a +5:30 from the query.
> And the UI over here aint showing '__' used in filters

New description:

 I have a django query which compares datetime like this -

     filters = {'order_created_on__gte':'2018-10-10'}
     queryset = model.objects.filter(**filters)
     query = str(queryset.query)

 It creates a query  - select ... where order_created_on >= 2018-10-10
 00:00:00

 When fired on postgres, it gives an error - syntax error at or near "00".

 If I fire the same query in db manually by replacing the date by
 '2018-10-10' it works.

 Now I actually tried the following ways, but all queries give the same
 text in the db query

     filters = {'order_created_on__gte':datetime(2018-10-10)}
     filters = {'order_created_on__year__gte':2018,
 'order_created_on__month__gte':10, 'order_created_on__day__gte':10}

 Also used the range filter, all of the above insert this text in the final
 query -

     where order_created_on >= 2018-10-10 00:00:00

 Updating the time zone too didnt have any effect rather than just removing
 a +5:30 from the query.
 And the UI over here aint showing 'double underscore''s used in filters

--

-- 
Ticket URL: <https://code.djangoproject.com/ticket/29840#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/068.a9df2182a84fd767e9f4bdb9560c48e2%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to