【问题标题】:Django Table JoinDjango 表连接
【发布时间】:2015-04-15 02:45:59
【问题描述】:

我正在查看 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'),)

我想获取端口号为 80 和服务名为“Apache”的 ServiceDefects 类的所有条目。为此,我编写了这样的查询:

ServiceDefects.objects.filter(portservice__port=80).filter(portservice__service='Apache') 

有什么帮助吗??提前致谢。

【问题讨论】:

    标签: django database join orm


    【解决方案1】:

    外键字段称为port,而不是portservice,所以你应该这样做:

    ServiceDefects.objects.filter(port__port=80).filter(port__service='Apache')
    

    您可能更愿意将两个参数放在一个 filter() 中:

    ServiceDefects.objects.filter(port__port=80, port__service='Apache')
    

    【讨论】:

      【解决方案2】:

      您应该在一个过滤器中编写这两个条件:

      ServiceDefects.objects.filter(port__port=80, port__service='Apache')
      

      【讨论】:

        猜你喜欢
        • 2016-06-13
        • 2020-07-17
        • 2012-04-07
        • 2018-08-03
        • 1970-01-01
        • 2020-12-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多