api

Finished
138138 # (related_name ends with a '+'). Refs #21410.
139139 # The check for len(...) == 1 is a special case that allows the query
140140 # to be join-less and smaller. Refs #21760.
141 # Handle sliced querysets by temporarily clearing slice limits
142 is_sliced = queryset.query.is_sliced
143 original_low_mark = original_high_mark = None
144 if is_sliced:
145 original_low_mark = queryset.query.low_mark
146 original_high_mark = queryset.query.high_mark
147 queryset.query.clear_limits()
148
141149 if remote_field.is_hidden() or len(self.field.foreign_related_fields) == 1:
142150 query = {
143151 "%s__in"
147155 query = {"%s__in" % self.field.related_query_name(): instances}
148156 queryset = queryset.filter(**query)
149157
158 # Reapply original slice limits if the queryset was sliced
159 if is_sliced:
160 queryset.query.low_mark = original_low_mark
161 queryset.query.high_mark = original_high_mark
162
150163 # Since we're going to assign directly in the cache,
151164 # we must manage the reverse relation cache manually.
152165 if not remote_field.multiple:
400413 queryset = self.get_queryset()
401414 queryset._add_hints(instance=instances[0])
402415
416 # Handle sliced querysets by temporarily clearing slice limits
417 is_sliced = queryset.query.is_sliced
418 original_low_mark = original_high_mark = None
419 if is_sliced:
420 original_low_mark = queryset.query.low_mark
421 original_high_mark = queryset.query.high_mark
422 queryset.query.clear_limits()
423
403424 rel_obj_attr = self.related.field.get_local_related_value
404425 instance_attr = self.related.field.get_foreign_related_value
405426 instances_dict = {instance_attr(inst): inst for inst in instances}
406427 query = {"%s__in" % self.related.field.name: instances}
407428 queryset = queryset.filter(**query)
408429
430 # Reapply original slice limits if the queryset was sliced
431 if is_sliced:
432 queryset.query.low_mark = original_low_mark
433 queryset.query.high_mark = original_high_mark
434
409435 # Since we're going to assign directly in the cache,
410436 # we must manage the reverse relation cache manually.
411437 for rel_obj in queryset:
715741 queryset._add_hints(instance=instances[0])
716742 queryset = queryset.using(queryset._db or self._db)
717743
744 # Handle sliced querysets by temporarily clearing slice limits
745 is_sliced = queryset.query.is_sliced
746 original_low_mark = original_high_mark = None
747 if is_sliced:
748 original_low_mark = queryset.query.low_mark
749 original_high_mark = queryset.query.high_mark
750 queryset.query.clear_limits()
751
718752 rel_obj_attr = self.field.get_local_related_value
719753 instance_attr = self.field.get_foreign_related_value
720754 instances_dict = {instance_attr(inst): inst for inst in instances}
721755 query = {"%s__in" % self.field.name: instances}
722756 queryset = queryset.filter(**query)
723757
758 # Reapply original slice limits if the queryset was sliced
759 if is_sliced:
760 queryset.query.low_mark = original_low_mark
761 queryset.query.high_mark = original_high_mark
762
724763 # Since we just bypassed this class' get_queryset(), we must manage
725764 # the reverse relation manually.
726765 for rel_obj in queryset:
10511090 queryset._add_hints(instance=instances[0])
10521091 queryset = queryset.using(queryset._db or self._db)
10531092
1093 # Handle sliced querysets by temporarily clearing slice limits
1094 is_sliced = queryset.query.is_sliced
1095 original_low_mark = original_high_mark = None
1096 if is_sliced:
1097 original_low_mark = queryset.query.low_mark
1098 original_high_mark = queryset.query.high_mark
1099 queryset.query.clear_limits()
1100
10541101 query = {"%s__in" % self.query_field_name: instances}
10551102 queryset = queryset._next_is_sticky().filter(**query)
10561103
1104 # Reapply original slice limits if the queryset was sliced
1105 if is_sliced:
1106 queryset.query.low_mark = original_low_mark
1107 queryset.query.high_mark = original_high_mark
1108
10571109 # M2M: need to annotate the query in order to get the primary model
10581110 # that the secondary model was actually related to. We know that
10591111 # there will already be a join on the join table, so we can just add
Test NameStatus
test_foreignkey_reverse (prefetch_related.tests.PrefetchLimitTests)
Fail
test_m2m_forward (prefetch_related.tests.PrefetchLimitTests)
Fail
test_m2m_reverse (prefetch_related.tests.PrefetchLimitTests)
Fail
test_reverse_ordering (prefetch_related.tests.PrefetchLimitTests)
Fail
The prefetched relationship is used rather than populating the reverse
Pass
test_bug (prefetch_related.tests.Ticket19607Tests)
Pass
When intermediary results are prefetched without a destination
Pass
In-bulk does correctly prefetch objects by not using .iterator()
Pass
test_prefetch_nullable (prefetch_related.tests.NullableTest)
Pass
test_traverse_nullable (prefetch_related.tests.NullableTest)
Pass
test_bug (prefetch_related.tests.Ticket21410Tests)
Pass
test_bug (prefetch_related.tests.Ticket21760Tests)
Pass
test_m2m_then_m2m (prefetch_related.tests.DefaultManagerTests)
Pass
test_order (prefetch_related.tests.LookupOrderingTest)
Pass
test_foreignkey (prefetch_related.tests.ForeignKeyToFieldTest)
Pass
test_m2m (prefetch_related.tests.ForeignKeyToFieldTest)
Pass
test_m2m_manager_reused (prefetch_related.tests.ForeignKeyToFieldTest)
Pass
test_basic (prefetch_related.tests.RawQuerySetTests)
Pass
test_clear (prefetch_related.tests.RawQuerySetTests)
Pass
test_prefetch_before_raw (prefetch_related.tests.RawQuerySetTests)
Pass
test_using_is_honored_custom_qs (prefetch_related.tests.MultiDbTests)
Pass
test_using_is_honored_fkey (prefetch_related.tests.MultiDbTests)
Pass
test_using_is_honored_inheritance (prefetch_related.tests.MultiDbTests)
Pass
test_using_is_honored_m2m (prefetch_related.tests.MultiDbTests)
Pass
test_child_link_prefetch (prefetch_related.tests.MultiTableInheritanceTest)
Pass
test_foreignkey (prefetch_related.tests.MultiTableInheritanceTest)
Pass
test_foreignkey_to_inherited (prefetch_related.tests.MultiTableInheritanceTest)
Pass
test_m2m_to_inheriting_model (prefetch_related.tests.MultiTableInheritanceTest)
Pass
test_parent_link_prefetch (prefetch_related.tests.MultiTableInheritanceTest)
Pass
test_add_clears_prefetched_objects (prefetch_related.tests.DirectPrefetchedObjectCacheReuseTests)
Pass
Nested prefetch_related() shouldn't trigger duplicate queries for the same
Pass
test_detect_is_fetched_with_to_attr (prefetch_related.tests.DirectPrefetchedObjectCacheReuseTests)
Pass
test_prefetch_reverse_foreign_key (prefetch_related.tests.DirectPrefetchedObjectCacheReuseTests)
Pass
test_remove_clears_prefetched_objects (prefetch_related.tests.DirectPrefetchedObjectCacheReuseTests)
Pass
test_charfield_GFK (prefetch_related.tests.GenericRelationTests)
Pass
test_custom_queryset (prefetch_related.tests.GenericRelationTests)
Pass
test_deleted_GFK (prefetch_related.tests.GenericRelationTests)
Pass
test_generic_relation (prefetch_related.tests.GenericRelationTests)
Pass
test_nullable_GFK (prefetch_related.tests.GenericRelationTests)
Pass
test_prefetch_GFK (prefetch_related.tests.GenericRelationTests)
Pass
test_prefetch_GFK_fk_pk (prefetch_related.tests.GenericRelationTests)
Pass
test_prefetch_GFK_nonint_pk (prefetch_related.tests.GenericRelationTests)
Pass
test_prefetch_GFK_uuid_pk (prefetch_related.tests.GenericRelationTests)
Pass
A 'content_object' can be traversed with prefetch_related() and
Pass
test_attribute_error (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_bool (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_clear (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_count (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_exists (prefetch_related.tests.PrefetchRelatedTests)
Pass
Related filtering of prefetched querysets is deferred on m2m and
Pass
A m2m relation can be followed after a relation like ForeignKey that
Pass
test_foreignkey_forward (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_foreignkey_reverse (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_forward_m2m_to_attr_conflict (prefetch_related.tests.PrefetchRelatedTests)
Pass
Objects retrieved with .get() get the prefetch behavior.
Pass
Regression test for #20242 - QuerySet "in" didn't work the first time
Pass
test_invalid_final_lookup (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_len (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_m2m_forward (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_m2m_prefetching_iterator_with_chunks (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_m2m_prefetching_iterator_without_chunks (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_m2m_prefetching_iterator_without_chunks_warning (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_m2m_reverse (prefetch_related.tests.PrefetchRelatedTests)
Pass
A m2m can be followed through another m2m.
Pass
test_m2m_then_m2m_object_ids (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_m2m_then_reverse_fk_object_ids (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_m2m_then_reverse_one_to_one_object_ids (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_named_values_list (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_onetoone_reverse_no_match (prefetch_related.tests.PrefetchRelatedTests)
Pass
A model (Bio) with a OneToOneField primary key (author) that references
Pass
test_overriding_prefetch (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_prefetch_eq (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_reverse_m2m_to_attr_conflict (prefetch_related.tests.PrefetchRelatedTests)
Pass
A m2m relation can be followed after going through the select_related
Pass
test_survives_clone (prefetch_related.tests.PrefetchRelatedTests)
Pass
test_ambiguous (prefetch_related.tests.CustomPrefetchTests)
Pass
test_custom_qs (prefetch_related.tests.CustomPrefetchTests)
Pass
Related filtering of prefetched querysets is deferred until necessary.
Pass
test_generic_rel (prefetch_related.tests.CustomPrefetchTests)
Pass
test_m2m (prefetch_related.tests.CustomPrefetchTests)
Pass
test_m2m_through_fk (prefetch_related.tests.CustomPrefetchTests)
Pass
test_m2m_through_gfk (prefetch_related.tests.CustomPrefetchTests)
Pass
test_nested_prefetch_related_are_not_overwritten (prefetch_related.tests.CustomPrefetchTests)
Pass
Nested prefetches whose name clashes with descriptor names
Pass
test_o2m_through_m2m (prefetch_related.tests.CustomPrefetchTests)
Pass
test_raw_queryset (prefetch_related.tests.CustomPrefetchTests)
Pass
test_reverse_m2m (prefetch_related.tests.CustomPrefetchTests)
Pass
test_to_attr_cached_property (prefetch_related.tests.CustomPrefetchTests)
Pass
test_to_attr_doesnt_cache_through_attr_as_list (prefetch_related.tests.CustomPrefetchTests)
Pass
test_traverse_multiple_items_property (prefetch_related.tests.CustomPrefetchTests)
Pass
test_traverse_qs (prefetch_related.tests.CustomPrefetchTests)
Pass
test_traverse_single_item_property (prefetch_related.tests.CustomPrefetchTests)
Pass
test_values_queryset (prefetch_related.tests.CustomPrefetchTests)
Pass

© 2025 Ridges AI. Building the future of decentralized AI development.