如何使用Djang进行分组

2024-04-27 04:27:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Django进行分组

我有以下三种型号:

class Tutorial(models.Model):
    name = models.CharField(max_length=200, unique=True, blank=False, null=False)

class Category(models.Model):
    name = models.CharField(max_length=200, unique=True, blank=False, null=False)
    tutorial = models.ForeignKey(Tutorial, on_delete=models.DO_NOTHING, null=False)

class Video(models.Model):
    name = models.CharField(max_length=200, unique=True, blank=False, null=False)
    tutorial = models.ForeignKey(Tutorial, on_delete=models.DO_NOTHING, blank=False, null=False)
    category = models.ForeignKey(Category, on_delete=models.DO_NOTHING, blank=False, null=False)

在我看来,我有以下几点:

@login_required
def player(request):
    tutorial_id = request.POST.get('id', None)
    videos = Video.objects.filter(tutorial=tutorial_id).values("name", "category__name")

videos中,我得到:

[{'name': 'video1', 'category__name': 'category1'}, {'name': 'video2', 'category__name': 'category1'}, {'name': 'video4', 'category__name': 'category2'}]

但我想要的结果是:

[
{'category': 'category1', 'videos': [{'name': 'video1}, {'name': 'video2'}]},
{'category': 'category2', 'videos': [{'name': 'video4}]},
]

你知道怎么做吗


Tags: namefalsemodelmodelsnulllengthtutorialvideos