django query_set 完整案例
时间: 2023-10-27 08:14:26 浏览: 98
yolov3 在 Open Images 数据集上预训练了 SPP 权重以及配置文件.zip
假设有以下模型:
```python
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=50)
published_date = models.DateField()
price = models.DecimalField(max_digits=5, decimal_places=2)
```
我们需要查询出所有价格小于等于50元的书籍,并按照出版日期从新到旧排序,最后只返回前10本书。
完整的查询代码如下:
```python
from django.db.models import Q
from datetime import date
today = date.today()
query_set = Book.objects.filter(
Q(price__lte=50) & Q(published_date__lte=today)
).order_by('-published_date')[:10]
```
首先,我们使用 `Q()` 方法来创建一个复杂的查询,它包含两个条件:价格小于等于50元和出版日期小于等于今天。
接着,我们使用 `order_by()` 方法按照出版日期从新到旧排序,并使用切片操作符 `[:10]` 来限制结果只返回前10本书。
最后,我们得到了一个 QuerySet 对象 `query_set`,它包含了满足条件的所有书籍。
阅读全文