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
换句话说,我可以将对象(模型实例)作为参数值传递吗?
还请提供一些指导,说明哪些地方可以找到明确的文件?
答案 0 :(得分:4)
是的,根据django文档;您可以使用行的实例来执行过滤。
答案 1 :(得分:1)
替代:
a = Blog.objects.get(pk=3)
b = a.blog_set.all()