I have a multi-tenant application where we use multi-currency.
The simplified models looks like:
class Currency(models.Model):
multi_tenant_company = models.ForeignKey(MultiTenantCompany, on_delete=models.CASCADE)
is_default_currency = models.BooleanField(default=False)
Now I want to add a unique db constraint on this model where every multi_tenant_company can only have 1 default currency.
My current approach, which fails is:
class Meta:
constraints = [
models.UniqueConstraint(
fields=['is_default_currency', 'multi_tenant_company'],
condition=Q(is_default_currency=True),
name='unique_is_default_currency')
]
What am I missing?