У меня есть класс модели Django следующим образом:
class IPGroup(BaseModel):
"""
Stores IP Groups
"""
name = models.CharField(max_length=50, unique=True)
team = models.ForeignKey(Team, on_delete=models.CASCADE)
_ips = models.ManyToManyField(IP, through='connectivity_service.IPGroupToIP', null=True)
_cidrs = models.ManyToManyField(CIDR, through='connectivity_service.IPGroupToCIDR', null=True)
_ip_groups = models.ManyToManyField('self', through='connectivity_service.IPGroupToIPGroup', null=True,
symmetrical=False)
def __unicode__(self):
return f'{self.name}'
class Meta:
app_label = 'connectivity_service'
Как видно, поля _ips
, _cidrs
и ip_groups
могут быть нулевыми в базе данных. Однако я хочупредотвратить сохранение всех трех из них вместе при сохранении модели.Другими словами, когда модель сохранена, по крайней мере одно из этих 3 полей не должно быть нулевым.