Fixed #30062 -- Added support for unique conditional constraints.

This commit is contained in:
Paveł Tyślacki 2018-12-27 22:21:59 +03:00 committed by Tim Graham
parent 1e837c4b23
commit b69f8eb04c
8 changed files with 291 additions and 26 deletions

View file

@ -3,6 +3,7 @@ from django.db import models
class Product(models.Model):
name = models.CharField(max_length=255)
color = models.CharField(max_length=32, null=True)
price = models.IntegerField(null=True)
discounted_price = models.IntegerField(null=True)
@ -12,5 +13,10 @@ class Product(models.Model):
check=models.Q(price__gt=models.F('discounted_price')),
name='price_gt_discounted_price',
),
models.UniqueConstraint(fields=['name'], name='unique_name'),
models.UniqueConstraint(fields=['name', 'color'], name='name_color_uniq'),
models.UniqueConstraint(
fields=['name'],
name='name_without_color_uniq',
condition=models.Q(color__isnull=True),
),
]