|
1 | | -from django.shortcuts import render # noqa |
| 1 | +from rest_framework import viewsets, permissions |
| 2 | +from .models import Match, Team, MatchResult |
| 3 | +from django.db.models import Sum, F |
| 4 | +from .serializers import MatchSerializer, TeamSerializer, GroupSerializer |
2 | 5 |
|
3 | | -# Create your views here. |
| 6 | + |
| 7 | +class MatchViewSet(viewsets.ModelViewSet): |
| 8 | + queryset = Match.objects.all() |
| 9 | + serializer_class = MatchSerializer |
| 10 | + permission_classes = [permissions.IsAuthenticated] |
| 11 | + |
| 12 | + |
| 13 | +class TeamViewSet(viewsets.ModelViewSet): |
| 14 | + queryset = Team.objects.all() |
| 15 | + serializer_class = TeamSerializer |
| 16 | + permission_classes = [permissions.IsAuthenticated] |
| 17 | + |
| 18 | + |
| 19 | +class GroupViewSet(viewsets.ModelViewSet): |
| 20 | + serializer_class = GroupSerializer |
| 21 | + permission_classes = [permissions.IsAuthenticated] |
| 22 | + |
| 23 | + def get_queryset(self): |
| 24 | + result = MatchResult.objects.values("team", "team__team_name", "match__group_id")\ |
| 25 | + .annotate(team_name=F("team__team_name"))\ |
| 26 | + .annotate(group=F("match__group_id"))\ |
| 27 | + .annotate(total_points=Sum('point')) |
| 28 | + return result |
0 commit comments