Я пытаюсь сгруппировать, используя 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}]},
]
Есть идеи, как это сделать?