1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

Fixed #34944 -- Made GeneratedField.output_field required.

Regression in f333e3513e.
This commit is contained in:
Mariusz Felisiak
2023-11-13 05:33:25 +01:00
parent de4884b114
commit 5875f03ce6
9 changed files with 150 additions and 54 deletions

View File

@@ -5664,10 +5664,14 @@ class OperationTests(OperationTestBase):
def _test_invalid_generated_field_changes(self, db_persist):
regular = models.IntegerField(default=1)
generated_1 = models.GeneratedField(
expression=F("pink") + F("pink"), db_persist=db_persist
expression=F("pink") + F("pink"),
output_field=models.IntegerField(),
db_persist=db_persist,
)
generated_2 = models.GeneratedField(
expression=F("pink") + F("pink") + F("pink"), db_persist=db_persist
expression=F("pink") + F("pink") + F("pink"),
output_field=models.IntegerField(),
db_persist=db_persist,
)
tests = [
("test_igfc_1", regular, generated_1),
@@ -5707,12 +5711,20 @@ class OperationTests(OperationTestBase):
migrations.AddField(
"Pony",
"modified_pink",
models.GeneratedField(expression=F("pink"), db_persist=True),
models.GeneratedField(
expression=F("pink"),
output_field=models.IntegerField(),
db_persist=True,
),
),
migrations.AlterField(
"Pony",
"modified_pink",
models.GeneratedField(expression=F("pink"), db_persist=False),
models.GeneratedField(
expression=F("pink"),
output_field=models.IntegerField(),
db_persist=False,
),
),
]
msg = (
@@ -5729,7 +5741,9 @@ class OperationTests(OperationTestBase):
"Pony",
"modified_pink",
models.GeneratedField(
expression=F("pink") + F("pink"), db_persist=db_persist
expression=F("pink") + F("pink"),
output_field=models.IntegerField(),
db_persist=db_persist,
),
)
project_state, new_state = self.make_test_state(app_label, operation)
@@ -5760,7 +5774,9 @@ class OperationTests(OperationTestBase):
"Pony",
"modified_pink",
models.GeneratedField(
expression=F("pink") + F("pink"), db_persist=db_persist
expression=F("pink") + F("pink"),
output_field=models.IntegerField(),
db_persist=db_persist,
),
)
project_state, new_state = self.make_test_state(app_label, operation)