Python 按单列分组而不执行原始sql
我想使用mysql后端在django中执行一个简单的Python 按单列分组而不执行原始sql,python,django,Python,Django,我想使用mysql后端在django中执行一个简单的groupbystatement(它不支持django ORM中列上的groupby)。我通常使用以下方法来执行此操作: Cue.objects.raw("SELECT * FROM main_cue GROUP BY group_id") 有没有办法不用这里的.raw()就能做到这一点?相当于: Cue.objects.values('*').distinct('group_id') 我在这里链接过滤器,因此我需要将其“保存在ORM内”。
groupby
statement(它不支持django ORM中列上的groupby)。我通常使用以下方法来执行此操作:
Cue.objects.raw("SELECT * FROM main_cue GROUP BY group_id")
有没有办法不用这里的.raw()
就能做到这一点?相当于:
Cue.objects.values('*').distinct('group_id')
我在这里链接过滤器,因此我需要将其“保存在ORM内”。这是我迄今为止最好的过滤器,但它非常不干净:
cues = self._get_assignable_cues(keyword)
group_ids = tuple(cues.values_list('group_id', flat=True).distinct())
cues_per_group = Cue.objects.raw(
'SELECT * FROM main_cue WHERE group_id IN %s GROUP BY group_id', (group_ids,)
)
您使用的是什么数据库?@ruddra Mysql是数据库。