1

直接結合である Django ORM を介してクエリを作成しようとしています。子テーブルにエントリがあるレコードのみを親テーブルから抽出しようとしています。さらに、親テーブルに条件を追加したいと考えています。

サンプルモデルは次のとおりです。

class Reporter(models.Model):    
    first_name = models.CharField(max_length=64)
    last_name = models.CharField(max_length=64)

class Article(models.Model):
    pub_date = models.DateField()
    headline = models.CharField(max_length=200)
    content = models.TextField()
    reporter = models.ForeignKey(Reporter) 

SQL は次のようになります。

Select * from Reporter 
JOIN Article ON Article.reporter_id = Reporter.id 
where Reporter.last_name="Jones"

Django ORM を使用して上記のクエリを作成するにはどうすればよいですか?

4

1 に答える 1

3

これにより、内部結合が行われ、レポーターが返されます。

Reporter.objects.filter(last_name='Jones', article__isnull=False)

(また、 に無害article.id IS NOT NULLを追加しますWHERE)

于 2013-04-12T23:11:46.363 に答える