2013-04-12 51 views
1

我想通過Django ORM創建一個直接連接的查詢。我試圖從父表中提取只有在子表中有條目的記錄,另外,我想在父表上添加一個條件。你如何通過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查詢?

回答

3

這將做一個內部聯接,並返回記者:

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

(這也將增加一個無害article.id IS NOT NULLWHERE

+0

謝謝帕維爾我真的很感激。目前有5的聲譽,所以我不能幸福地回答這個問題。謝謝 – Rob