2012-07-01 193 views
4
class Blog(models.Model): 
    name = models.CharField(max_length=100) 

class Entry(models.Model): 
    blog = models.ForeignKey(Blog) 
    headline = models.CharField(max_length=255) 

以下查詢是否正確?django - 針對對象過濾外鍵

a = Blog.objects.get(id__exact=14) 
b = Entry.objects.filter(blog = a) 

我明白,以下任何一種方法都更優雅,甚至推薦。

Entry.objects.filter(blog__id__exact=3) # Explicit form 
Entry.objects.filter(blog__id=3)  # __exact is implied 
Entry.objects.filter(blog__pk=3)  # __pk implies __id__exact 

換句話說,我可以傳遞一個對象(模型實例)作爲參數值嗎?

請同時提供一些關於在哪裏可以找到明確文件的指導?

回答

1

備選:

a = Blog.objects.get(pk=3) 
b = a.blog_set.all()