models.py 756 B

12345678910111213141516171819202122
  1. from django.db import models
  2. class Product(models.Model):
  3. name = models.CharField(max_length=255)
  4. color = models.CharField(max_length=32, null=True)
  5. price = models.IntegerField(null=True)
  6. discounted_price = models.IntegerField(null=True)
  7. class Meta:
  8. constraints = [
  9. models.CheckConstraint(
  10. check=models.Q(price__gt=models.F('discounted_price')),
  11. name='price_gt_discounted_price',
  12. ),
  13. models.UniqueConstraint(fields=['name', 'color'], name='name_color_uniq'),
  14. models.UniqueConstraint(
  15. fields=['name'],
  16. name='name_without_color_uniq',
  17. condition=models.Q(color__isnull=True),
  18. ),
  19. ]