Django过滤ManyToMany字段

时间:2014-09-23 15:25:58

标签: python django django-models

class Page(models.Model):
    name = models.CharField(max_length=128)
    categories = models.ManyToManyField(Category, null=True, blank=True)

class Category(models.Model):
    # some fields

我想过滤属于特定类别的页面。例如:

filtered_pages = Page.objects.filter(category1 in categories)

我认为这在Django中应该很简单,但是无法找到解决方法。

1 个答案:

答案 0 :(得分:3)

categories指定为关键字参数:

filtered_pages = Page.objects.filter(categories=category1)

您还可以使用类别对象page_set来获取相关网页:

filtered_pages = category1.page_set.all()