luq*_*qui 8 django django-queryset
我有这样的模型:
class Foo(models.Model):
date = models.DateTimeField()
language = models.TextField()
# other stuff
Run Code Online (Sandbox Code Playgroud)
我想Foo
用语言对s 进行分组,然后在每组中获得最新的一个.我无法弄清楚如何使用django的QuerySet
API来执行此操作(老实说,我不知道如何在SQL中执行此操作).例如:
pk | date | language
---+--------+------------------
1 | 1:00 | python
2 | 1:30 | python/django
3 | 1:45 | haskell
4 | 2:15 | python
5 | 2:45 | haskell
Run Code Online (Sandbox Code Playgroud)
我想得到类似这个结果的东西:
{ 'python': 4, 'python/django': 2, 'haskell': 5 }
Run Code Online (Sandbox Code Playgroud)
也许代替数字的那些是完整的Foo
对象.
尝试这个:
Foo.objects.values('语言').annotate(max_date=Max('date')).order_by()
或者您实际上需要具有最大日期的记录 ID 吗?
您可能想阅读以下内容:http ://docs.djangoproject.com/en/dev/topics/db/aggregation/
归档时间: |
|
查看次数: |
1944 次 |
最近记录: |