You are thinking it in the wrong way. Try to do like this:
Class NetworkGroup(models.Model):
name = models.CharField(max_length=30)
Class ServiceType(models.Model):
name = models.CharField(max_length=30)
Class Port(models.Model):
network_group = models.ForeignKey('NetworkGroup', on_delete=models.CASCADE, related_name='network_ports')
service_type = models.ForeignKey('ServiceType', on_delete=models.CASCADE, related_name='service_ports')
...
First add network instance and service instance. Then you can create port and link them with foreignkey. This is the proper way of doing it.
If you want to filter:
Port.objects.filter(network_group.name = 'network1') # all ports belong to 'network1'
Port.objects.filter(service_type.name = 'tv') # all ports have service type 'tv'
Port.objects.filter(network_group.name = 'network1', service_type.name = 'tv') # network1 and tv ports
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…