5
class Blog(models.Model):
    name = models.CharField(max_length=100)

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

以下查询是否正确?

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

换句话说,我可以将对象(模型实例)作为参数值传递吗?

还请提供一些关于在哪里可以找到明确文档的指导?

4

2 回答 2

4

是的,根据 django 文档;您可以使用行的实例进行过滤。

查询相关对象

于 2012-07-01T05:33:51.543 回答
1

选择:

a = Blog.objects.get(pk=3)
b = a.blog_set.all()
于 2012-07-01T11:33:29.090 回答