Django, GROUP_CONCAT tidak terbina dalam, tetapi ia boleh dicontohi menggunakan Fungsi Agregat tersuai.
Untuk mencipta Fungsi Agregat tersuai untuk GROUP_CONCAT, ikut langkah berikut:
from django.db.models import Aggregate class Concat(Aggregate): function = 'GROUP_CONCAT' template = '%(function)s(%(distinct)s%(expressions)s)' def __init__(self, expression, distinct=False, **extra): super(Concat, self).__init__( expression, distinct='DISTINCT ' if distinct else '', output_field=CharField(), **extra)
Kelas ini mentakrifkan fungsi GROUP_CONCAT dan kelakuannya.
Untuk menggunakan Fungsi Agregat tersuai anda, cuma masukkannya dalam pertanyaan anda seperti berikut:
query_set = Fruits.objects.values('type').annotate(count=Count('type'), name=Concat('name')).order_by('-count')
Ini akan mengembalikan Set Pertanyaan dengan hasil yang diingini:
apple, 2, "fuji,mac" orange, 1, "navel"
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Fungsi GROUP_CONCAT MySQL dalam Django?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!