#30349: Using exclude on annotated FilteredRelation doesn't work
-------------------------------------+-------------------------------------
     Reporter:  Lucas Miller         |                    Owner:  robinh00d
         Type:  Bug                  |                   Status:  closed
    Component:  Database layer       |                  Version:  master
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:  fixed
     Keywords:                       |             Triage Stage:  Ready for
                                     |  checkin
    Has patch:  1                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by Mariusz Felisiak <felisiak.mariusz@…>):

 * status:  assigned => closed
 * resolution:   => fixed


Comment:

 In [changeset:"6b736dd0747dc77473f1f7b691c196ef5912d7dd" 6b736dd0]:
 {{{
 #!CommitTicketReference repository=""
 revision="6b736dd0747dc77473f1f7b691c196ef5912d7dd"
 Fixed #30349 -- Fixed QuerySet.exclude() on FilteredRelation.

 Using annotated FilteredRelations raised a FieldError when coupled with
 exclude(). This is due to not passing filtered relation fields to the
 subquery created in split_exclude(). We fixed this issue by passing the
 filtered relation data to the newly created subquery.

 Secondly, in the case where an INNER JOIN is used in the excluded
 subquery, the ORM would trim the filtered relation INNER JOIN in attempt
 to simplify the query. This will also remove the ON clause filters
 generated by the FilteredRelation. We added logic to not trim the INNER
 JOIN if it is from FilteredRelation.
 }}}

-- 
Ticket URL: <https://code.djangoproject.com/ticket/30349#comment:11>
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/072.4dcf4870df2163f62e65d87abf0eb6d1%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to