Saq*_*Ali 6 python django orm django-models
这是我的Django类:
class MyClass(models.Model):
my_integer = models.IntegerField()
created_ts = models.DateTimeField(default=datetime.utcnow, editable=False)
Run Code Online (Sandbox Code Playgroud)
我想检索MyClass具有最新版本的实例created_ts每个唯一值my_integer.我无法弄清楚该怎么做.
有人可以告诉我该怎么做吗?
这会帮助你
from django.db.models import Count, Max
MyClass.objects.values('my_integer').annotate(count=Count("my_integer"),latest_date=Max('created_ts'))
Run Code Online (Sandbox Code Playgroud)
表格中的数据
my_integer created_ts
- -----------
1 2015-09-08 20:05:51.144321+00:00
1 2015-09-08 20:08:40.687936+00:00
3 2015-09-08 20:08:58.472077+00:00
2 2015-09-08 20:09:08.493748+00:00
2 2015-09-08 20:10:20.906069+00:00
Run Code Online (Sandbox Code Playgroud)
输出
[
{'count': 2, 'latest_date': datetime.datetime(2015, 9, 8, 20, 8, 40, 687936, tzinfo=<UTC>), 'my_integer': 1},
{'count': 2, 'latest_date': datetime.datetime(2015, 9, 8, 20, 10, 20, 906069, tzinfo=<UTC>), 'my_integer': 2},
{'count': 1, 'latest_date': datetime.datetime(2015, 9, 8, 20, 8, 58, 472077, tzinfo=<UTC>), 'my_integer': 3}
]
Run Code Online (Sandbox Code Playgroud)
小智 -1
未经测试的
results = MyClass.objects.all().distinct('my_integer').order_by('created_ts')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1972 次 |
| 最近记录: |