mirror of
https://github.com/nprasad2077/nbaStats.git
synced 2026-11-07 02:20:33 +00:00
route and view to display top 20 players by pts ws
This commit is contained in:
1 parent
f92e4cc54e
commit
0b18de5a82
2 files changed
+44
-2
No files matched your search
+2
-1
@@ -1,5 +1,5 @@
|
||||
from django.urls import path
|
||||
from .views import PlayerDataList, PlayerDataByTeamList, PlayerDataBySeasonList, PlayerDataByNameList, TopScorersbySeasonList, ThreeTwoTopPointTrends, TopAssistsBySeasonList, TopReboundsBySeasonList, TopBlocksBySeasonList, TopStealsBySeasonList, TopOffensiveReboundsBySeasonList, TopDefensiveReboundsBySeasonList, PointsPerGameHistogramBySeasonList, TopPtsScatterPlotData, TopPtsScatterPlotDataFast
|
||||
from .views import PlayerDataList, PlayerDataByTeamList, PlayerDataBySeasonList, PlayerDataByNameList, TopScorersbySeasonList, ThreeTwoTopPointTrends, TopAssistsBySeasonList, TopReboundsBySeasonList, TopBlocksBySeasonList, TopStealsBySeasonList, TopOffensiveReboundsBySeasonList, TopDefensiveReboundsBySeasonList, PointsPerGameHistogramBySeasonList, TopPtsScatterPlotData, TopPtsScatterPlotDataFast, Top20ScorersPost2009WS
|
||||
|
||||
urlpatterns = [
|
||||
path('api/playerdata/', PlayerDataList.as_view(), name='playerdata_list'),
|
||||
@@ -17,4 +17,5 @@ urlpatterns = [
|
||||
path('api/points_per_game_histogram/<int:season>/', PointsPerGameHistogramBySeasonList.as_view(), name='points_per_game_histogram'),
|
||||
path('api/top_pts_scatter_plot/', TopPtsScatterPlotData.as_view(), name='top_pts_scatter_plot'),
|
||||
path('api/top_pts_scatter_plot_fast/', TopPtsScatterPlotDataFast.as_view(), name='top_pts_scatter_plot_fast'),
|
||||
path('api/top_20_post_2009_PTS_ws/', Top20ScorersPost2009WS.as_view(), name='top_20_post_2009_PTS_ws')
|
||||
]
|
||||
+42
-1
@@ -1,7 +1,7 @@
|
||||
from django.shortcuts import render
|
||||
from django.http import JsonResponse
|
||||
from django.core import serializers
|
||||
from .models import PlayerData, PlayerTotalsData, PlayerAdvancedData
|
||||
from .models import PlayerData, PlayerTotalsData, PlayerAdvancedData, PlayerPlayoffTotalsData, PlayerPlayoffAdvancedData
|
||||
from rest_framework import generics
|
||||
from .serializers import PlayerDataSerializer, HistogramDataSerializer
|
||||
from rest_framework.views import APIView
|
||||
@@ -252,3 +252,44 @@ class TopPtsScatterPlotDataFast(APIView):
|
||||
})
|
||||
|
||||
return Response(result)
|
||||
|
||||
|
||||
# Top 20 players in playoffs by PTS X ws for scatter plot in chart.js
|
||||
|
||||
class Top20ScorersPost2009WS(APIView):
|
||||
def get(self, request):
|
||||
# Get the top 20 scorers after the 2015 season
|
||||
top_scorers = PlayerPlayoffTotalsData.objects \
|
||||
.filter(season__gt=2009) \
|
||||
.values('player_name') \
|
||||
.annotate(total_pts=Sum('PTS')) \
|
||||
.order_by('-total_pts')[:20]
|
||||
|
||||
# Get the total WS for each of the top 20 scorers after the 2015 season
|
||||
chart_data = []
|
||||
for scorer in top_scorers:
|
||||
player_name = scorer['player_name']
|
||||
total_ws = PlayerPlayoffAdvancedData.objects \
|
||||
.filter(player_name=player_name, season__gt=2009) \
|
||||
.aggregate(total_ws=Sum('ws'))['total_ws']
|
||||
|
||||
chart_data.append({
|
||||
'x': scorer['total_pts'],
|
||||
'y': total_ws,
|
||||
'player_name': player_name
|
||||
})
|
||||
|
||||
# Sort the data by total_ws DESC
|
||||
chart_data = sorted(chart_data, key=lambda x: x['y'], reverse=True)
|
||||
|
||||
# Prepare the response data for chart.js
|
||||
response_data = {
|
||||
'datasets': [
|
||||
{
|
||||
'data': chart_data
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
return Response(response_data)
|
||||
|
||||
Reference in new issue
Block a user