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