MCPcopy
hub / github.com/django/django / replace_expressions

Method replace_expressions

django/db/models/expressions.py:910–928  ·  view source on GitHub ↗
(self, replacements)

Source from the content-addressed store, hash-verified

908 return query.resolve_ref(self.name, allow_joins, reuse, summarize)
909
910 def replace_expressions(self, replacements):
911 if (replacement := replacements.get(self)) is not None:
912 return replacement
913 field_name, *transforms = self.name.split(LOOKUP_SEP)
914 # Avoid unnecessarily looking up replacements with field_name again as
915 # in the vast majority of cases F instances won't be composed of any
916 # lookups.
917 if not transforms:
918 return self
919 if (
920 replacement := replacements.get(F(field_name))
921 ) is None or replacement._output_field_or_none is None:
922 return self
923 for transform in transforms:
924 transform_class = replacement.get_transform(transform)
925 if transform_class is None:
926 return self
927 replacement = transform_class(replacement)
928 return replacement
929
930 def asc(self, **kwargs):
931 return OrderBy(self, **kwargs)

Callers 4

validateMethod · 0.95
replace_expressionsMethod · 0.95
replace_expressionsMethod · 0.45

Calls 4

FClass · 0.70
getMethod · 0.45
splitMethod · 0.45
get_transformMethod · 0.45

Tested by 1