Python Django ORM:过滤相关对象?
假设我有多对一的关系Python Django ORM:过滤相关对象?,python,django,Python,Django,假设我有多对一的关系 class Author(model): name = TextField() class Book(model): year = IntegerField() author = ForeignKey(Author) 您可以轻松地从“多”方面进行筛选。只保留作者满足某些条件的书 books.objects.filter(author__name__like='...') 从作者方面来说,我怎样才能(为每个作者)只保留满足条件的书?有类似的东西吗
class Author(model):
name = TextField()
class Book(model):
year = IntegerField()
author = ForeignKey(Author)
您可以轻松地从“多”方面进行筛选。只保留作者满足某些条件的书
books.objects.filter(author__name__like='...')
从作者方面来说,我怎样才能(为每个作者)只保留满足条件的书?有类似的东西吗
Author.related_filter(book__year__gt>1800)
select * from
author join book on ...
where book.year > 1800
这会产生类似的结果
Author.related_filter(book__year__gt>1800)
select * from
author join book on ...
where book.year > 1800
??可与自定义对象一起使用:
这将导致总共两个查询,因此不是您要查找的单个SQL语句,而是ORM获取过滤相关对象的内置方式。谢谢。如果我只想计算每个作者的
现代书籍
,这是有效的,还是有更合适的方法??