diff options
| author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-11-13 05:33:25 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2023-11-14 20:22:07 +0100 |
| commit | 5875f03ce61b85dfd9ad34f7b871c231c358d432 (patch) | |
| tree | 0636ce76c69d41b2cdf3205d715bd4edbefaaff6 /django/db/models/fields/generated.py | |
| parent | de4884b114534f43c49cf8c5b7f10181e737f4e9 (diff) | |
Fixed #34944 -- Made GeneratedField.output_field required.
Regression in f333e3513e8bdf5ffeb6eeb63021c230082e6f95.
Diffstat (limited to 'django/db/models/fields/generated.py')
| -rw-r--r-- | django/db/models/fields/generated.py | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/django/db/models/fields/generated.py b/django/db/models/fields/generated.py index abafc3ad27..ce811789c3 100644 --- a/django/db/models/fields/generated.py +++ b/django/db/models/fields/generated.py @@ -16,7 +16,7 @@ class GeneratedField(Field): _resolved_expression = None output_field = None - def __init__(self, *, expression, db_persist=None, output_field=None, **kwargs): + def __init__(self, *, expression, output_field, db_persist=None, **kwargs): if kwargs.setdefault("editable", False): raise ValueError("GeneratedField cannot be editable.") if not kwargs.setdefault("blank", True): @@ -29,7 +29,7 @@ class GeneratedField(Field): raise ValueError("GeneratedField.db_persist must be True or False.") self.expression = expression - self._output_field = output_field + self.output_field = output_field self.db_persist = db_persist super().__init__(**kwargs) @@ -51,11 +51,6 @@ class GeneratedField(Field): self._resolved_expression = self.expression.resolve_expression( self._query, allow_joins=False ) - self.output_field = ( - self._output_field - if self._output_field is not None - else self._resolved_expression.output_field - ) # Register lookups from the output_field class. for lookup_name, lookup in self.output_field.get_class_lookups().items(): self.register_lookup(lookup, lookup_name=lookup_name) @@ -150,8 +145,7 @@ class GeneratedField(Field): del kwargs["editable"] kwargs["db_persist"] = self.db_persist kwargs["expression"] = self.expression - if self._output_field is not None: - kwargs["output_field"] = self._output_field + kwargs["output_field"] = self.output_field return name, path, args, kwargs def get_internal_type(self): |
