Fixed #35638 -- Updated validate_constraints to consider db_default.

This commit is contained in:
David Sanders 2024-08-05 08:22:29 +02:00 committed by Sarah Boyce
parent 91a038754b
commit 509763c799
10 changed files with 130 additions and 13 deletions

View file

@ -434,7 +434,7 @@ class Migration(migrations.Migration):
primary_key=True,
),
),
("ints", IntegerRangeField(null=True, blank=True)),
("ints", IntegerRangeField(null=True, blank=True, db_default=(5, 10))),
("bigints", BigIntegerRangeField(null=True, blank=True)),
("decimals", DecimalRangeField(null=True, blank=True)),
("timestamps", DateTimeRangeField(null=True, blank=True)),

View file

@ -130,7 +130,7 @@ class LineSavedSearch(PostgreSQLModel):
class RangesModel(PostgreSQLModel):
ints = IntegerRangeField(blank=True, null=True)
ints = IntegerRangeField(blank=True, null=True, db_default=(5, 10))
bigints = BigIntegerRangeField(blank=True, null=True)
decimals = DecimalRangeField(blank=True, null=True)
timestamps = DateTimeRangeField(blank=True, null=True)

View file

@ -1213,3 +1213,12 @@ class ExclusionConstraintTests(PostgreSQLTestCase):
constraint_name,
self.get_constraints(ModelWithExclusionConstraint._meta.db_table),
)
def test_database_default(self):
constraint = ExclusionConstraint(
name="ints_equal", expressions=[("ints", RangeOperators.EQUAL)]
)
RangesModel.objects.create()
msg = "Constraint “ints_equal” is violated."
with self.assertRaisesMessage(ValidationError, msg):
constraint.validate(RangesModel, RangesModel())