【发布时间】:2021-07-10 12:01:30
【问题描述】:
目的: 我正在尝试设置一个带有基本 UI 的小型本地网络监视器,它可以 ping 数据库中登记的所有设备并更新状态。
问题: save() 方法没有更新数据库。
我的模特:
class Device(models.Model):
dev_name = models.CharField(max_length=100)
dev_ip = models.CharField(max_length=16)
def __str__(self):
return self.dev_name
def get_absolute_url(self):
return reverse('device-detail', kwargs={'pk': self.pk})
我写的 ping 设备和更新 DB 的函数:
import platform
import subprocess
from netmon.models import Device
from background_task import background
@background(schedule=60)
def start_monitor():
devices = Device.objects.all()
print(">>>>>>>>>>> In Start_monitor <<<<<<<<<<<")
for device in devices:
if (ping(device.dev_ip)):
device.status = "Alive"
else:
device.status = "Dead"
device.save(update_fields=["dev_status"])
我是 Django 初学者,如果您需要更多详细信息,请告诉我。感谢所有答案。
谢谢
【问题讨论】:
标签: python-3.x django django-models