#35677: Unexpected behaviour of Prefetch with queryset filtering on a through 
model
-------------------------------------+-------------------------------------
     Reporter:  David Glenck         |                    Owner:  Simon
                                     |  Charette
         Type:  Bug                  |                   Status:  closed
    Component:  Database layer       |                  Version:  5.1
  (models, ORM)                      |
     Severity:  Normal               |               Resolution:  fixed
     Keywords:  Prefetch,            |             Triage Stage:  Ready for
  prefetch_related, many-to-many     |  checkin
    Has patch:  1                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Changes (by Sarah Boyce <42296566+sarahboyce@…>):

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

Comment:

 In [changeset:"2598b371a93e21d84b7a2a99b2329535c8c0c138" 2598b371]:
 {{{#!CommitTicketReference repository=""
 revision="2598b371a93e21d84b7a2a99b2329535c8c0c138"
 Fixed #35677 -- Avoided non-sticky filtering of prefetched many-to-many.

 The original queryset._next_is_sticky() call never had the intended effect
 as
 no further filtering was applied internally after the pk__in lookup making
 it
 a noop.

 In order to be coherent with how related filters are applied when
 retrieving
 objects from a related manager the effects of what calling
 _next_is_sticky()
 prior to applying annotations and filters to the queryset provided for
 prefetching are emulated by allowing the reuse of all pre-existing JOINs.

 Thanks David Glenck and Thiago Bellini Ribeiro for the detailed reports
 and
 tests.
 }}}
-- 
Ticket URL: <https://code.djangoproject.com/ticket/35677#comment:19>
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 view this discussion visit 
https://groups.google.com/d/msgid/django-updates/01070194db721c6d-fffbdae4-a688-47aa-a919-6493b0a260c2-000000%40eu-central-1.amazonses.com.

Reply via email to