Django获取许多值作为列表

Django获取许多值作为列表,django,postgresql,django-rest-framework,django-queryset,Django,Postgresql,Django Rest Framework,Django Queryset,我需要groupname作为列表而不是单独记录的用户详细信息 class Groups: name = models.CharField(max_length=100) class User: firstname = models.CharField(max_length=100) lastname = models.CharField(max_length=100) group = models.ManyToManyField(Groups) 当我像上面那样

我需要groupname作为列表而不是单独记录的用户详细信息

class Groups:
    name = models.CharField(max_length=100)

class User:
    firstname = models.CharField(max_length=100)
    lastname = models.CharField(max_length=100)
    group = models.ManyToManyField(Groups)
当我像上面那样询问时,我变得这样了

但是我想要这样


有没有一种方法,我可以这样查询,而不需要单独查询。

如果您使用postgres,您可以使用。在Django ORM中,如下所示:

User.objects.values('firstname','lastname', 'group__name')
注意:
distinct
很有用,因为连接表可能会导致重复

from django.contrib.postgres.aggregates import ArrayAgg

User.objects \
    .annotate(list_of_group_names=ArrayAgg('group__name')) \
    .order_by('id').distinct() \
    .values('firstname', 'lastname', 'list_of_group_names')