Я пытаюсь создать запрос в моей базе данных postgresql с помощью django ORM, а затем сгруппировать результаты по конкретному ip_addr.Вот мои модели:
class Report(models.Model):
network = models.CharField(max_length=50)
timestamp = models.CharField(max_length=30)
def __str__(self):
return f"{self.network}_{str(self.timestamp)}"
class Device(models.Model):
report = models.ForeignKey(Report, on_delete=models.CASCADE)
ip_addr = models.GenericIPAddressField()
mac_addr = models.CharField(max_length=20)
date = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.ip_addr
class Port(models.Model):
host = models.ForeignKey(Device, on_delete=models.CASCADE)
port = models.IntegerField()
status = models.CharField(max_length=15)
application = models.CharField(max_length=100)
def __str__(self):
return str(self.port)
Когда я выполняю запрос Port.objects.filter(host__report_id=pk)
, я получаю все порты в конкретном отчете.Моя проблема в том, что я не знаю, как сгруппировать все порты с ip_addr, к которому они принадлежат.Буду признателен за любые полезные советы.