Учитывая эти две модели:ограничение Добавить к модели
models.py
PRIMARY, SECONDARY = 0, 1
STORAGE_TYPE = (
(PRIMARY, "Primary"),
(SECONDARY, "Secondary"),
)
class Storage(models.Model):
company = models.ForeignKey(Company, related_name='storage')
storage_type = models.PositiveIntegerField(choices=STORAGE_TYPE)
class Company(models.Model):
name = models.CharField(max_length=64)
Я хочу добавить ограничение поэтому одна компания только может иметь один первичный storage_type. Остальные должны быть вторичными.
Что было бы лучшим способом достичь этого?
Это хорошая практика ?:
models.py
# ... Storage model
def clean(self):
if self.storage_type == PRIMARY:
if self.objects.filter(company=self.company, storage_type=PRIMARY).exists():
raise ValidationError({'storage_type': 'Already exists a Primary storage.'})