Refs #28586 -- Split descriptor from GenericForeignKey. #19381
+58
−37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Trac ticket number
ticket-28586
Branch description
To support field fetching modes for
GenericForeignKey
, it needs to conform to a new "fetcher protocol", which includes having afield
attribute that points from the "fetcher" to the actual field.The core related fields, like
ForeignKey
, all use descriptors with afield
attribute. These descriptors then act as their "fetcher" class.GenericForeignKey
has always been a bit odd because it does not have a separate descriptor class. This PR removes that oddity by adding such a class and moving the appropriate methods there.This change follows ticket-35224, which made
GenericForeignKey
an actual field class.Checklist
main
branch.