首页 > 解决方案 > 如何在过滤 Django 模型时创建 OR 条件?

问题描述

我想进行这样的查询:

Mymodel.objects.filter(description__icontains='something' or title__icontains='something')

但是使用该or语句不起作用。加上逗号使它成为一个and声明。我该如何解决这个问题?

标签: pythondjangodjango-modelsdjango-views

解决方案


您将条件包装在Q对象 [Django-doc]中,并使用按位或运算符 ( |) 作为 OR:

from django.db.models import Q

Mymodel.objects.filter(
    Q(description__icontains='something') |
    Q(title__icontains='something')
)

推荐阅读