Django - Набор запросов со множеством связанных значений

С помощью Django я хочу создать набор запросов со связанными объектами из отношения ManyToManyField. Моя цель - объединить связанные значения в список, как group by или string_agg в SQL.

Вот мои настройки:

models.py

class BaseModel(models.Model):
    id = models.UUIDField( 
         primary_key = True, 
         default = uuid.uuid4, 
         editable = False,
         verbose_name='identifier') 
    created_at = models.DateTimeField(auto_now_add=True, verbose_name='created at')
    updated_at = models.DateTimeField(auto_now=True, verbose_name='last update')

    class Meta:
        abstract = True
        
class Topping(BaseModel):
    name = models.CharField(max_length=100, blank=False, unique=True, verbose_name='topping')

    def __str__(self):
        return self.name
        
class Pizza(BaseModel):
    name = models.CharField(max_length=100, blank=False, verbose_name='nom')
    fk_toppings = models.ManyToManyField(Topping, default=None, related_name='toppings_data', verbose_name='toppings')
    
    def __str__(self):
        return f"{self.name} - {self.fk_toppings}"

views.py

class PizzaView(TemplateView):

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        
        qs = Pizza.objects.all()
        print(qs)
        header = list(qs.values().first().keys())
        print(f"Header: {header}")
        context['pizzas'] = qs
        return context

Возвращенный queryset не отображает никаких связанных объектов:

<QuerySet [<Pizza: Margherita - my_app.Topping.None>]>

И заголовок не содержит поля ManyToManyField:

Header: ['id', 'created_at', 'updated_at', 'name']

Почему fk_toppings здесь нет?

Как получить набор запросов со списком связанных объектов, например:

<QuerySet [<Pizza: Margherita - (Basil, Mozzarella, Tomato)]>

Я нашел этот пакет, но я удивлен, что в Django ORM нет встроенного метода для выполнения этой стандартной реляционной операции.

Вернуться на верх