jef*_*eon 15 django django-orm
我有一个看起来像这样的模型:
Requests: user, req_time, req_text
Run Code Online (Sandbox Code Playgroud)
在数据库中,记录可能如下所示:
id, user_id, req_time, req_text
1 1 TIMESTAMP YES
2 1 TIMESTAMP NO
3 2 TIMESTAMP YES
Run Code Online (Sandbox Code Playgroud)
等等
如何编写Django ORM查询:按用户对请求进行分组,根据req_text过滤请求,还可以选择结果结果集的最大ID.因此,对于每个用户,我将返回一行符合过滤条件并且具有最大id.
Bot*_*res 13
from django.db.models.aggregates import Max
request_values = Requests.objects.filter(req_text='YES') \
.values('user') \
.annotate(max_id=Max('id'))
Run Code Online (Sandbox Code Playgroud)
然后request_values会是这样的:
[
{'user': 1, 'max_id': 1},
{'user': 2, 'max_id': 4},
{'user': 3, 'max_id': 5},
{'user': 4, 'max_id': 12},
...
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9264 次 |
| 最近记录: |