summaryrefslogtreecommitdiff
path: root/django/db/models/fields/generated.py
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2023-11-13 05:33:25 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2023-11-14 20:22:07 +0100
commit5875f03ce61b85dfd9ad34f7b871c231c358d432 (patch)
tree0636ce76c69d41b2cdf3205d715bd4edbefaaff6 /django/db/models/fields/generated.py
parentde4884b114534f43c49cf8c5b7f10181e737f4e9 (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.py12
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):