Skip to main content
 首页 » 编程设计

python之Django 过滤 ManyToMany 字段

2024年08月27日25over140

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 中应该很简单,但找不到解决方法。

请您参考如下方法:

将类别指定为关键字参数:

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

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

filtered_pages = category1.page_set.all()