我的意思是型号.py最简单的形式是:
from django.db import models
class Device(models.Model):
description = models.CharField(max_length=30)
ignored = models.BooleanField()
class Mac(models.Model):
mac = models.CharField(max_length=17, primary_key=True)
device = models.ForeignKey('Device')
class SeenEvent(models.Model):
mac = models.ForeignKey('Mac')
date = models.DateTimeField()
在SeenEvent
模型中,我记录看到特定MAC地址的时间。Unix守护进程定期扫描网络,然后向数据库添加SeenEvent
对象。你知道吗
我想生成一个报告,报告在过去的10分钟内(例如“超时”时间)看到了哪些设备(或MAC地址)。对于这些设备,我还想指定最新连续事件的开始时间,即设备最新的首次出现时间。我能做到这一点没有拉所有seenvents为给定的mac?你知道吗
我的一个想法是在SeenEvent
中创建streak\u id—在添加新事件之前,Unix守护进程将看到Mac最后一次出现的时间,如果发生在10分钟前,则为新创建的事件分配一个新的*group\u id*计数器。这是个好主意吗?你知道吗
您可以在
SeenEvent
上执行raw sql查询(过滤器更容易),以获取过去10分钟的事件,然后获取连续的事件(我假设这就是您对chain的意思)。有关列的连续值,请参见此答案。你知道吗How to find consecutive rows based on the value of a column?
我想说的是保持简单,使用django和python功能按日期排序,并回复您需要的任何内容,例如:
相关问题 更多 >
编程相关推荐