mirror of
https://github.com/django/django.git
synced 2025-11-07 07:15:35 +00:00
[5.0.x] Fixed #35127 -- Made Model.full_clean() ignore GeneratedFields.
Thanks Claude Paroz for the report. Regression inf333e3513e. Backport of4879907223from main
This commit is contained in:
@@ -502,7 +502,7 @@ class GeneratedModel(models.Model):
|
||||
output_field=models.IntegerField(),
|
||||
db_persist=True,
|
||||
)
|
||||
fk = models.ForeignKey(Foo, on_delete=models.CASCADE, null=True)
|
||||
fk = models.ForeignKey(Foo, on_delete=models.CASCADE, null=True, blank=True)
|
||||
|
||||
class Meta:
|
||||
required_db_features = {"supports_stored_generated_columns"}
|
||||
@@ -516,7 +516,7 @@ class GeneratedModelVirtual(models.Model):
|
||||
output_field=models.IntegerField(),
|
||||
db_persist=False,
|
||||
)
|
||||
fk = models.ForeignKey(Foo, on_delete=models.CASCADE, null=True)
|
||||
fk = models.ForeignKey(Foo, on_delete=models.CASCADE, null=True, blank=True)
|
||||
|
||||
class Meta:
|
||||
required_db_features = {"supports_virtual_generated_columns"}
|
||||
|
||||
@@ -168,6 +168,14 @@ class GeneratedFieldTestMixin:
|
||||
with self.assertRaisesMessage(AttributeError, msg):
|
||||
m.field
|
||||
|
||||
def test_full_clean(self):
|
||||
m = self.base_model(a=1, b=2)
|
||||
# full_clean() ignores GeneratedFields.
|
||||
m.full_clean()
|
||||
m.save()
|
||||
m = self._refresh_if_needed(m)
|
||||
self.assertEqual(m.field, 3)
|
||||
|
||||
def test_create(self):
|
||||
m = self.base_model.objects.create(a=1, b=2)
|
||||
m = self._refresh_if_needed(m)
|
||||
|
||||
Reference in New Issue
Block a user