Django Table 加入
Django Table Join
我正在查看 django 连接以获得一些查询集。
我已经声明了两个这样的模型
class PortService(models.Model):
port=models.IntegerField()
service=models.TextField()
class Meta:
unique_together=(('port','service'),)
class ServiceDefects(models.Model):
port=models.ForeignKey('PortService')
defect_id=models.TextField()
defect_description=models.TextField()
class Meta:
unique_together=(('port','defect_id'),)
我想获取 ServiceDefects class 的所有条目,它具有端口号 80 和名为 'Apache' 的服务。为此,我写了这样的查询:
ServiceDefects.objects.filter(portservice__port=80).filter(portservice__service='Apache')
有帮助吗??提前致谢。
您应该将两个条件都写在一个过滤器中:
ServiceDefects.objects.filter(port__port=80, port__service='Apache')
外键字段被称为port
,而不是portservice
,所以你应该这样做:
ServiceDefects.objects.filter(port__port=80).filter(port__service='Apache')
您可能更愿意将两个参数放在一个 filter()
:
ServiceDefects.objects.filter(port__port=80, port__service='Apache')
我正在查看 django 连接以获得一些查询集。 我已经声明了两个这样的模型
class PortService(models.Model):
port=models.IntegerField()
service=models.TextField()
class Meta:
unique_together=(('port','service'),)
class ServiceDefects(models.Model):
port=models.ForeignKey('PortService')
defect_id=models.TextField()
defect_description=models.TextField()
class Meta:
unique_together=(('port','defect_id'),)
我想获取 ServiceDefects class 的所有条目,它具有端口号 80 和名为 'Apache' 的服务。为此,我写了这样的查询:
ServiceDefects.objects.filter(portservice__port=80).filter(portservice__service='Apache')
有帮助吗??提前致谢。
您应该将两个条件都写在一个过滤器中:
ServiceDefects.objects.filter(port__port=80, port__service='Apache')
外键字段被称为port
,而不是portservice
,所以你应该这样做:
ServiceDefects.objects.filter(port__port=80).filter(port__service='Apache')
您可能更愿意将两个参数放在一个 filter()
:
ServiceDefects.objects.filter(port__port=80, port__service='Apache')