【发布时间】:2020-07-29 10:54:55
【问题描述】:
我必须得到每种问题的平均成绩值(1 个问题的多个成绩,1 个成绩的 1 个问题)。 在我的代码下方,仅获取用户获得的所有成绩,但我不知道如何按问题“分组”成绩以及为什么我的过滤器不起作用(返回400 错误请求)
@action(detail=False, methods=['post'])
def results(self, request):
user_id = request.data["user_id"]
survey_id = request.data["survey_id"]
self_rating_objects = Grade.objects.filter(interview__in=Interview.objects.filter( survey_id=survey_id, target_user_id=user_id))
serializer = GradeSerializer(data=self_rating_objects,many=True)
if serializer.is_valid():
return Response(serializer.data,status=status.HTTP_200_OK)
else:
return Response(status=status.HTTP_400_BAD_REQUEST)
这是我的年级模型
class Grade(models.Model):
created_at = models.DateField(auto_now_add=True)
value = models.IntegerField()
question = models.ForeignKey(Question, on_delete=models.CASCADE, related_name="questions")
interview = models.ForeignKey(Interview, on_delete=models.CASCADE, related_name="grades")
还有面试模型
class Interview(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="users")
target_user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="target_users")
comment = models.TextField(default='')
created_at = models.DateField(auto_now_add=True)
survey = models.ForeignKey(Survey, on_delete=models.CASCADE, related_name="interviews")
【问题讨论】:
标签: python django filter group-by