diff options
Diffstat (limited to 'tests/model_fields/models.py')
| -rw-r--r-- | tests/model_fields/models.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/tests/model_fields/models.py b/tests/model_fields/models.py index 652c808b40..d9811ba164 100644 --- a/tests/model_fields/models.py +++ b/tests/model_fields/models.py @@ -609,3 +609,79 @@ class GeneratedModelNullVirtual(models.Model): class Meta: required_db_features = {"supports_virtual_generated_columns"} + + +class GeneratedModelBase(models.Model): + a = models.IntegerField() + a_squared = models.GeneratedField( + expression=F("a") * F("a"), + output_field=models.IntegerField(), + db_persist=True, + ) + + class Meta: + abstract = True + + +class GeneratedModelVirtualBase(models.Model): + a = models.IntegerField() + a_squared = models.GeneratedField( + expression=F("a") * F("a"), + output_field=models.IntegerField(), + db_persist=False, + ) + + class Meta: + abstract = True + + +class GeneratedModelCheckConstraint(GeneratedModelBase): + class Meta: + required_db_features = { + "supports_stored_generated_columns", + "supports_table_check_constraints", + } + constraints = [ + models.CheckConstraint( + condition=models.Q(a__gt=0), + name="Generated model check constraint a > 0", + ) + ] + + +class GeneratedModelCheckConstraintVirtual(GeneratedModelVirtualBase): + class Meta: + required_db_features = { + "supports_virtual_generated_columns", + "supports_table_check_constraints", + } + constraints = [ + models.CheckConstraint( + condition=models.Q(a__gt=0), + name="Generated model check constraint virtual a > 0", + ) + ] + + +class GeneratedModelUniqueConstraint(GeneratedModelBase): + class Meta: + required_db_features = { + "supports_stored_generated_columns", + "supports_table_check_constraints", + } + constraints = [ + models.UniqueConstraint(F("a"), name="Generated model unique constraint a"), + ] + + +class GeneratedModelUniqueConstraintVirtual(GeneratedModelVirtualBase): + class Meta: + required_db_features = { + "supports_virtual_generated_columns", + "supports_expression_indexes", + } + constraints = [ + models.UniqueConstraint( + F("a"), name="Generated model unique constraint virtual a" + ), + ] |
