#36299: ORM Regressions in Django 5.2
-------------------------------------+-------------------------------------
     Reporter:  OutOfFocus4          |                     Type:  Bug
       Status:  new                  |                Component:  Database
                                     |  layer (models, ORM)
      Version:  5.2                  |                 Severity:  Normal
     Keywords:                       |             Triage Stage:
                                     |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
 ORM calls that worked prior to Django 5.2 now return different results or
 outright fail in Django 5.2. I have attached a file with proof-of-concept
 tests.

 The first issue I noticed is that calling `alias` on after `values_list`
 adds the aliased value to the result set. I believe the root of this error
 is in `django/db/models/sql/query.py` lines 1224 and 1225:

 {{{#!python
         if self.selected:
             self.selected[alias] = alias
 }}}

 This code adds the alias to `selected` regardless of the value of the
 `select` parameter.

 Another issue I found causes queryset evaluation to raise an
 `AttributeError`. The following code:

 {{{#!python
 with atomic():
     values = (
         User.objects.select_for_update(of=("self",))
         .values_list(
             Concat(F("first_name"), Value(" "), F("last_name")), "email"
         )
         .get(pk=12)
     )
 }}}

 will fail with a stacktrace ending in `AttributeError: 'Concat' object has
 no attribute 'target'`
-- 
Ticket URL: <https://code.djangoproject.com/ticket/36299>
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 view this discussion visit 
https://groups.google.com/d/msgid/django-updates/0107019600f85364-1f260eaf-95d1-41fa-a5d2-7346c224e29a-000000%40eu-central-1.amazonses.com.

Reply via email to