2012-02-01 97 views
2

兩個外鍵關係,我有三個型號:過濾通過在Django

class Studio(models.Model): 
    name = models.CharField("Studio", max_length=30, unique=True) 

class Film(models.Model): 
    studio = models.ForeignKey(Studio, verbose_name="Studio") 
    name = models.CharField("Film Name", max_length=30, unique=True) 

class Actor(models.Model): 
    film = models.ForeignKey(Film, verbose_name="Film") 
    name = models.CharField("Name", max_length=30, unique=True) 

我要查詢演員,看是否工作室,電影和演員的特定組合在數據庫中存在。我知道如何檢查Actor是否存在。我知道如何篩選演員姓名和電影名稱。是否有單行方法來查詢Actor名稱和電影名稱和Studio名稱(兩次遍歷外鍵鏈)?

回答

6

你可以這樣說:

Actor.objects.filter(name="actorname",film__name="filmname", film__studio__name="studioname") 

文檔可以發現here

3

只要保持鏈__保持遍歷打算:

Actor.objects.filter(film__studio__name='Something') 
2

沿

線東西

Actor.objects.filter(name='foo', film__name='bar', film__studio__name='baz')