From 789a8dcb5d0a07cbf7c4e61ed36d5d9e1876162a Mon Sep 17 00:00:00 2001 From: Gabriel Detraz Date: Mon, 28 Aug 2017 23:04:15 +0000 Subject: [PATCH] Si il y a deja des ip, on change leur destination ip_type --- machines/models.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/machines/models.py b/machines/models.py index 0153e569..a54fdc32 100644 --- a/machines/models.py +++ b/machines/models.py @@ -93,7 +93,13 @@ class IpType(models.Model): for net in self.ip_range.cidrs(): networks += net.iter_hosts() ip_obj = [IpList(ip_type=self, ipv4=str(ip)) for ip in networks] - IpList.objects.bulk_create(ip_obj) + listes_ip = IpList.objects.filter(ipv4__in=[str(ip) for ip in networks]) + # Si il n'y a pas d'ip, on les crée + if not listes_ip: + IpList.objects.bulk_create(ip_obj) + # Sinon on update l'ip_type + else: + listes_ip.update(ip_type=self) return def del_ip_range(self): @@ -373,8 +379,7 @@ def interface_post_delete(sender, **kwargs): @receiver(post_save, sender=IpType) def iptype_post_save(sender, **kwargs): iptype = kwargs['instance'] - if not iptype.ip_objects(): - iptype.gen_ip_range() + iptype.gen_ip_range() @receiver(post_save, sender=MachineType) def machine_post_save(sender, **kwargs):