Allen Liu Allen Liu - 26 days ago 13
MySQL Question

GROUP_CONCAT equivalent in Django

Say I have the following table called

fruits
:

id | type | name
-----------------
0 | apple | fuji
1 | apple | mac
2 | orange | navel


My goal is to ultimately come up with a count of the different
types
and a comma-delimited list of the
names
:

apple, 2, "fuji,mac"
orange, 1, "navel"


This can be easily done with
GROUP_CONCAT
in MySQL but I'm having trouble with the Django equivalent. This is what I have so far but I am missing the
GROUP_CONCAT
stuff:

query_set = Fruits.objects.values('type').annotate(count=Count('type')).order_by('-count')


I would like to avoid using raw SQL queries if possible.

Any help would be greatly appreciated!

Thanks! =)

Answer

The Django ORM does not support this; if you don't want to use raw SQL then you'll need to group and join.

Comments