Python 使用django表进行聚合

Python 使用django表进行聚合,python,django,datatables,Python,Django,Datatables,我正在使用它对数据表进行服务器端处理。到目前为止,它工作得很好,但现在我尝试向表中添加一个字段,该字段包含通过特定外键与对象关联的对象总数。使用fnRender很容易在客户端正确显示,但是由于排序是在服务器端完成的,所以我需要在服务器端实际执行聚合。事实证明,这很困难 我似乎找不到在服务器端处理这个问题的方法。fields对象中的条目似乎只接受实际的模型字段,我看不出有什么方法可以插入我的google搜索结果所建议的注释。我已经研究过了,但由于我只是在构建一个字符串,这似乎没有什么帮助 理想情况

我正在使用它对数据表进行服务器端处理。到目前为止,它工作得很好,但现在我尝试向表中添加一个字段,该字段包含通过特定外键与对象关联的对象总数。使用fnRender很容易在客户端正确显示,但是由于排序是在服务器端完成的,所以我需要在服务器端实际执行聚合。事实证明,这很困难

我似乎找不到在服务器端处理这个问题的方法。fields对象中的条目似乎只接受实际的模型字段,我看不出有什么方法可以插入我的google搜索结果所建议的注释。我已经研究过了,但由于我只是在构建一个字符串,这似乎没有什么帮助

理想情况下,我希望找到一种在字段字典中使用外键关系聚合的方法,类似于:

fields = {
    'id': 'id',
    'name': 'name',
    'total_items': 'items__count' #Something like this, where Item has a foreign key to the object the datatable is composed of
    #More fields...
}

如果这是不可能的,或者不可行,只要使排序基于聚合就可以了,因为我可以从客户端更改表中显示的数据,而不需要进行任何筛选。

我最终意识到,当我重写get\u queryset时,我可以在中插入注释,如下所示:

def get_queryset(self):
    qs = super(SomeObjectDataTableView, self).get_queryset()
    return qs.select_related().annotate(items_count=Count('items'))
也许应该早点发现这一点