如何根据函数的结果修改类的布尔字段的值?
我正在尝试做的是一个函数,它 ping (icmp) 一个位于“Cliente”类中的 ip,并根据结果更改类中的值“ping_status”。
我是 python 的新手,所以我没有太多的知识,我一直在尝试这样做 1 周,但我做不到。
models.py
class Cliente(models.Model):
razon_social = models.CharField('Razon Social', max_length=50)
numero_cuenta = models.CharField('Numero de cuenta',max_length=6)
nombre_contacto = models.CharField('Nombre del contacto', max_length=50)
numero_del_contacto = models.CharField('Numero del contacto', max_length=10)
email = models.EmailField('Correo Electronico', blank=True, null=True)
tiene_as_propio = models.BooleanField('Tiene ASN priopio', default=False)
ipv4 = models.GenericIPAddressField('IP', default='192.168.0.0')
segmento = models.CharField('Segmento', max_length=15)
asn= models.CharField(max_length=6, blank=True, null=True)
created = models.DateTimeField('Creado el', auto_now_add=True ,blank=True, null=True)
updated = models.DateTimeField('Actualizado el', auto_now_add=True, blank=True, null=True)
topologia = models.FileField('Topologia', blank=True, null=True)
ping_status = models.BooleanField('Ping', blank=True, null=True)
def Meta(self):
verbose_name = 'cliente'
verbose_name_plural = 'clientes'
def __str__(self):
return self.razon_social
我的功能如下所示:
def do_ping():
"""Realice un nuevo ping y guárdelo en la base de datos."""
ip_clientes = Cliente.objects.values_list('ipv4')
for ip in ip_clientes:
ip = (list(ip))
for ping in ip:
ping = subprocess.call(['ping', '-n', '1', '-w',
'2',ping],
stdout=open(os.devnull, 'w'),
stderr=open(os.devnull, 'w'))
但在此之后我不知道如何获取类值并修改它
守着星空守着你
相关分类