django中object中filter用法及示例
时间: 2024-01-23 08:01:58 浏览: 21
在 Django 中,我们可以使用 `filter()` 方法来获取满足指定条件的数据库对象。
`filter()` 方法接受一个或多个关键字参数,每个关键字参数都是一个条件表达式,可以使用双下划线(`__`)来表示各个模型之间的关联关系。例如:
```python
from myapp.models import Book
# 获取价格小于10元的所有书籍
books = Book.objects.filter(price__lt=10)
# 获取作者名为"张三"的所有书籍
books = Book.objects.filter(author__name="张三")
# 获取出版社所在城市为"北京"的所有书籍
books = Book.objects.filter(publisher__city="北京")
```
在上面的示例中,`filter()` 方法的参数都是条件表达式,例如 `price__lt=10` 表示价格小于10元。
注意,`filter()` 方法返回的是一个 QuerySet,即符合条件的数据库对象的集合。我们可以对这个集合进行进一步的操作,例如对查询结果进行排序、分页等。
另外,还有一个类似的方法叫做 `exclude()`,它的作用是排除满足指定条件的对象。例如:
```python
# 获取价格大于等于10元的所有书籍
books = Book.objects.exclude(price__lt=10)
```
上面的示例中,`exclude()` 方法的参数是条件表达式 `price__lt=10`,表示价格小于10元的书籍被排除在查询结果之外。