#24570: Cannot resolve keyword "CAST" in group_by clause.
----------------------------------------------+--------------------
     Reporter:  user0007                      |      Owner:  nobody
         Type:  Bug                           |     Status:  new
    Component:  Database layer (models, ORM)  |    Version:  1.8
     Severity:  Normal                        |   Keywords:
 Triage Stage:  Unreviewed                    |  Has patch:  0
Easy pickings:  0                             |      UI/UX:  0
----------------------------------------------+--------------------
 Hello,

 during migrating from Django 1.7.5 to 1.8 I found a bug(?)

     truncate_date = connection.ops.date_trunc_sql('day', 'created_at')

     qs =
 
MyModel.objects.filter(user_id=1).annotate(max_date=models.Max('created_at')).extra({'created_at':
 truncate_date}).values('product_id','created_at','max_date')
     qs.query.group_by = ['product_id', truncate_date]
     qs.order_by('-max_date')[:10]
 Traceback (most recent call last):
   File "<console>", line 1, in <module>
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/query.py", line 138, in __repr__
     data = list(self[:REPR_OUTPUT_SIZE + 1])
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/query.py", line 162, in __iter__
     self._fetch_all()
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/query.py", line 965, in _fetch_all
     self._result_cache = list(self.iterator())
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/query.py", line 1085, in iterator
     for row in self.query.get_compiler(self.db).results_iter():
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/sql/compiler.py", line 783, in results_iter
     results = self.execute_sql(MULTI)
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/sql/compiler.py", line 818, in execute_sql
     sql, params = self.as_sql()
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/sql/compiler.py", line 367, in as_sql
     extra_select, order_by, group_by = self.pre_sql_setup()
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/sql/compiler.py", line 51, in pre_sql_setup
     group_by = self.get_group_by(self.select + extra_select, order_by)
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/sql/compiler.py", line 102, in get_group_by
     expressions.append(self.query.resolve_ref(expr))
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/sql/query.py", line 1522, in resolve_ref
     self.get_initial_alias(), reuse)
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/sql/query.py", line 1461, in setup_joins
     names, opts, allow_many, fail_on_missing=True)
   File "/home/env/local/lib/python2.7/site-
 packages/django/db/models/sql/query.py", line 1386, in names_to_path
     "Choices are: %s" % (name, ", ".join(available)))
 FieldError: Cannot resolve keyword u"CAST(DATE_FORMAT(created_at,
 '%%Y-%%m-%%d 00:00:00') AS DATETIME)" into field.

 This code works perfectly on Django 1.7.5

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

Reply via email to