Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django ORM:过滤相关对象?_Python_Django - Fatal编程技术网

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获取过滤相关对象的内置方式。

谢谢。如果我只想计算每个作者的
现代书籍
,这是有效的,还是有更合适的方法??