考虑以下Django模型:
class Account(models.Model):
ACCOUNT_CHOICES = [
('m', 'Main',),
('s','Secondary'),
('o', 'Other')
]
user = models.ForeignKey(User)
level = models.CharField(max_length=1, choices=ACCOUNT_CHOICES)
在允许用户使用任意数量的“辅助”或“其他”帐户的同时,如何对每个用户实施最多一个“主”帐户的数据库约束?在某种意义上,我想要
unique_together
对于
user
和
level
,但仅当
水平
是
m
.
我知道我可以手动检查保存,但我希望数据库自动检查并提出
IntegrityError
在适当的时候。