2015-10-01 91 views
0

查詢集可以通過上層搜索,但我想反轉。 例如:Django獲得Foreignkey反向模型查詢集

而不是搜索Reporter的文章模型。我希望Reporter Model向我展示與之相關的文章模型。我瀏覽了Docs,但沒有發現任何有用的東西。

型號:

from django.db import models 

class Reporter(models.Model): 
    # ... 
    pass 

class Article(models.Model): 
    reporter = models.ForeignKey(Reporter) 

瀏覽:

article = Article.objects.filter(reporter__name='somename') 

我想要什麼,而不會改變模型:

reporter = Reporter.objects.filter(name='somename', Article) 
#show all Articles from somename 

回答

2

您使用相關的名稱功能。

articles = Reporter.objects.get(name='somename').article_set.all() 

如果你已經有記者,這是更簡單:

articles = my_reporter.article_set.all() 
+0

感謝完美,我正在尋找。 – dk1990

+0

此外,你可以在這裏找到更多信息https://docs.djangoproject.com/en/1.8/ref/models/fields/#django.db.models.ForeignKey.related_name – BloodyD

0

你必須寫這樣的代碼;

reporter_ids = Reporter.objects.filter(name='somename').values_list('id', flat=True) 
article = Article.objects.filter(reporter_id__in=reporter_ids) 
+0

謝謝你,但我試圖避免兩個對象。 – dk1990