django orm filter 多条件
时间: 2023-10-13 09:04:56 浏览: 96
Django ORM 中可以使用多个条件来过滤查询结果。常用的方法有 `filter()` 和 `exclude()`。
`filter()` 方法可以接收任意数量的关键字参数,每个关键字参数都是一个条件。多个条件之间是"与"的关系,即所有条件都必须满足才能返回结果。
示例代码如下:
```python
from myapp.models import MyModel
result = MyModel.objects.filter(condition1=value1, condition2=value2, ...)
```
`exclude()` 方法与 `filter()` 方法类似,但是它表示排除满足条件的结果。多个条件之间同样是"与"的关系。
示例代码如下:
```python
from myapp.models import MyModel
result = MyModel.objects.exclude(condition1=value1, condition2=value2, ...)
```
除了关键字参数之外,还可以使用 Q 对象来构造复杂的查询条件。`Q` 对象可以使用 `&` 和 `|` 运算符组合多个条件。
示例代码如下:
```python
from django.db.models import Q
from myapp.models import MyModel
result = MyModel.objects.filter(Q(condition1=value1) | Q(condition2=value2))
```
上述代码表示查询 `condition1=value1` 或者 `condition2=value2` 的结果。
阅读全文