如果使用django api在slave /子表中存在alteast一条记录,则从主表获取记录

时间:2016-04-08 12:13:56

标签: python django postgresql

详细说明

e.g。 我有两个模特"主题"和"问题"

class Subject(models.Model):
    title = models.CharField(max_length=200,unique=True)
    is_active = models.BooleanField(default=True)

    def __str__(self):
        return self.title

class Question(models.Model):
    title = models.CharField(max_length=500)
    is_active = models.BooleanField(default=True)
    subject = models.ForeignKey('Subject')

    def __str__(self):
        return self.title

我希望活动主题列表至少包含一个活动问题。

我已经完成了初始搜索并检查了django queryset api,但没有得到答案。

我不是在寻找原始的SQL查询选项。

我希望这会清除查询。我试过django api,但没有得到预期的结果。我认为这是非常明显的查询,应该有简单的答案。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你试过这个吗?

Subject.objects.filter(question__id__isnull=False).distinct()

您甚至可以将其简化为以下内容,但是我太懒了,如果它是正确的或者尝试一下就太懒了:

Subject.objects.filter(question__isnull=False).distinct()