Conversation
Collaborator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Lowercase name lookups currently depend on whether a caller uses a manager, a chained queryset, or a view mixin. For example, an uppercase member name fails through an M2M detail queryset, and applying the manager's normalization to every queryset also corrupts regex escapes such as
\D.This change registers literal-value lookups on
LowerCaseCharField(inherited byLowerCaseDNSNameField). Direct and chained queries,Qobjects, joins, related managers, and collection lookups now share normalization. Regex patterns, ordinary fields, and explicit expressions/transforms retain Django's semantics. Existing manager classes remain available for compatibility, including theNetManagercombination, and redundant query-time normalization is removed from views.The database schema and lowercase storage behavior are unchanged. Exact queries normalize their parameters without wrapping indexed columns in SQL functions.
docs/name_lookups.mddocuments the supported lookup behavior.Validation
Q/negation, collections and generators, joins, prefetched relations, M2M operations, owner case sensitivity, regex escapes, expressions/transforms, SQL parameters, andNetManagercompatibility.Related: #650, #651.