Python 在Django中执行查询时,检查many to may字段中是否包含

Python 在Django中执行查询时,检查many to may字段中是否包含,python,django,django-queryset,Python,Django,Django Queryset,假设我有以下模型: class Blog(models.Model): owner = models.ForeignKey(User) articles = models.ManyToManyField(Article) 假设我有一个将用户和文章作为参数的视图。我想获得该用户的所有博客,并为每个博客检查文章是否包含在博客文章中。因此,不要按文章过滤,只需检查该用户对所有博客进行过滤的查询返回的每个博客是否包含该文章 我想知道实现这一点最有效的方法是什么?很简单,Django O

假设我有以下模型:

class Blog(models.Model):
    owner = models.ForeignKey(User)
    articles = models.ManyToManyField(Article)
假设我有一个将用户和文章作为参数的视图。我想获得该用户的所有博客,并为每个博客检查文章是否包含在博客文章中。因此,不要按文章过滤,只需检查该用户对所有博客进行过滤的查询返回的每个博客是否包含该文章


我想知道实现这一点最有效的方法是什么?

很简单,Django ORM可以同样处理多对多过滤器

所以,我在想这样的事情:

user_blogs = Blog.objects.filter(owner=user)

user_blogs_with_article = user_blogs.filter(articles=article)

谢谢,如果我有user_blogs=Blog.objects.filter(owner=user)[0:10]呢?我需要逐个查询每个日志吗?不,您可以这样做:
Blog.objects.filter(pk\u in=[Blog.pk for Blog in user\u blogs])。filter(articles=article)