我有一个这样的模型:
class Foo(models.Model):
date = models.DateTimeField()
language = models.TextField()
# other stuff
我希望按语言对Foo
进行分组,然后在每组中获取最新的一个。我无法弄清楚如何使用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
我想得到类似这个结果的东西:
{ 'python': 4, 'python/django': 2, 'haskell': 5 }
也许代替数字,那些是完整的Foo
个对象。
答案 0 :(得分:2)
您可以使用原始查询来解决问题:
$.ajax ({
type: "POST",
url: "post.php",
data: JSON.stringify({ test: item }),
contentType: "application/json; charset=utf-8",
success: function(result) {
console.log(result);
}
});
Obs:我使用SQLite语法,但其他SQL语言应该类似。
答案 1 :(得分:0)
试试这个:
Foo.objects.values( '语言')。注释(MAX_DATE =最大( '日期'))。ORDER_BY()
或者您确实需要具有最大日期的记录ID吗?
您可能需要阅读此内容:http://docs.djangoproject.com/en/dev/topics/db/aggregation/