Est-il possible de définir une contrainte basée sur l'expression sur un objet de modèle django, par ex. Si je veux imposer une contrainte où un propriétaire peut avoir seulement un widget d'un type donné qui n'est pas dans un état expiré, mais peut avoir autant d'autres tant qu'ils sont expirés. Évidemment, je peux le faire en remplaçant la méthode save, mais je me demande si cela peut être fait en définissant des contraintes, par ex. une dérivée de la contrainte unique_togetherDjango - Contraintes de modèle basées sur l'expression
WIDGET_STATE_CHOICES = (
('NEW', 'NEW'),
('ACTIVE', 'ACTIVE'),
('EXPIRED', 'EXPIRED')
)
class MyWidget(models.Model):
owner = models.CharField(max_length=64)
widget_type = models.CharField(max_length = 10)
widget_state = models.CharField(max_length = 10, choices = WIDGET_STATE_CHOICES)
#I'd like to be able to do something like
class Meta:
unique_together = (("owner","widget_type","widget_state" != 'EXPIRED')