假设我们在Django有三种型号
网络组模型、端口模型和服务类型模型。
注意: Network类似于有24个端口的修补程序面板(对于熟悉网络的用户来说)
每个网络组通常有24个端口,每个端口属于一个网络组。
但是每个端口都有服务类型(例如:接入点、电视等)每种服务类型都有一个端口。
因此,当我创建Network时,我会自动生成24个端口,但我不知道如何使服务类型的外键为空,因此我可以在需要时分配它。
发布于 2021-01-26 12:35:34
你想错了。试着这样做:
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')
...首先添加网络实例和服务实例。然后,您可以创建端口,并将它们与foreignkey连接起来。这是正确的做法。
如果您想过滤:
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 portshttps://stackoverflow.com/questions/65900816
复制相似问题