Django Группировка (аннотирование) по порядку и получение всех значений
У меня есть следующая модель
class Attempt(BaseModel):
category = models.ForeignKey(Category, on_delete=models.CASCADE, null=True, blank=True)
answer = models.ForeignKey(to=ModelAnswer,null=True, blank=True,on_delete=models.CASCADE)
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
order = models.PositiveIntegerField(null=True, blank=True)
def __str__(self):
return self.category.name
class Meta:
ordering = ['order']
В этой модели будет 10 записей для общего идентификатора заказа, т.е. 1, если в модели попыток 10 записей, то им будет присвоен одинаковый номер заказа, т.е. заказ =1 для следующих 10 попыток будет присвоен тот же порядковый номер, т.е. order=2, поскольку 10 записей добавляются сразу.
Я просто хочу показать эти 10 записей в том же массиве, что и ответ с порядком = 1 и следующий массив для порядка = 2
вот мои взгляды
class ListAttemptSerializer(generics.ListAPIView):
serializer_class = serializers.AttemptSerializer
permission_classes = [permissions.IsAuthenticated]
def get_queryset(self):
data = Attempt.objects.filter(user=self.request.user).values('order').annotate(
total=Count('order')
).all()
return data
Serializer.py
class AttemptSerializer(serializers.ModelSerializer):
answer = ListAnswerSeiralizer(many=True)
category = serializers.CharField()
class Meta:
model = Attempt
fields = [
'category',
'answer',
]
Мой ожидаемый ответ будет выглядеть следующим образом
[
{"answer": [{
"id": 1,
"user": 1,
"questions": "what are the facts of this situation?",
"subcategory": "Circumstance",
"is_intentional": "True",
"answer": "string",
"created_at": "2022-09-05T10:59:59.551583"
},
{
"id": 2,
"user": 1,
"questions": "what are the facts of this situation?",
"subcategory": "Circumstance",
"is_intentional": "True",
"answer": "string",
"created_at": "2022-09-05T10:59:59.573441"
}],
"category": "1",
}
]
Я просто хочу объединить все данные определенного порядка, если у Attempt есть order =1 для 5 запросов, я хочу все эти данные в одном массиве