Эй, ребята, у меня возникли проблемы с попыткой спроектировать, как будет работать эта конечная точка.В настоящее время я хотел бы, чтобы эта конечная точка "/nba/players?date=01012016"
работала, используя две разные конечные точки для результатов.
В настоящее время моя конечная точка GameDates возвращает что-то похожее на
{id: 1, home_team_id: 1, away_team_id: 2, date: "1/1/2016"},
{id: 4, home_team_id: 2, away_team_id: 3, date: "1/2/2016"}
Я хочу получить этот GameDate_id или этопервичный ключ (в данном случае id: 1), который затем передается другой конечной точке PlayerStatistic, которая будет возвращать что-то вроде этого -
{id: 1, game_id: 1, player_id: 1, team_id: 1, points: 20, assists: 10, rebounds: 2},
{id: 2, game_id: 1, player_id: 2, team_id: 1, points: 15, assists: 2, rebounds: 2},
{id: 3, game_id: 1, player_id: 3, team_id: 2, points: 10, assists: 2, rebounds: 20},
{id: 4, game_id: 1, player_id: 4, team_id: 2, points: 5, assists: 1, rebounds: 2}
Моя начальная конечная точка с запросом даты вернет эти четыре JSON, так какВ тот день у игрока была игра (game_id = 1) из конечной точки GameDate, затем этот game_id используется для запроса конечной точки PlayerStatistic и возвращает.
Я знаю правильный способ сказать, что он переопределяет функцию get_queryset, например:
def get_queryset(self):
date = self.request.query_params.get('date')
queryset = self.queryset
if date:
# the rest here?
чтобы получить параметры, но я не уверен, как оттуда идти.
edit - Добавлены мои модели ниже -
class Player(models.Model):
# class for Player model
name = models.CharField(max_length=100)
team_id = models.ForeignKey(Team, on_delete=models.CASCADE)
class GameDate(models.Model):
# class for GameDate model
home_team_id = models.ForeignKey(Team, related_name='home_games',
on_delete=models.CASCADE)
away_team_id = models.ForeignKey(Team, related_name='away_games',
on_delete=models.CASCADE)
date = models.DateField()
class PlayerStatistic(models.Model):
# class for individual player statistics
game_id = models.ForeignKey(GameDate, on_delete=models.CASCADE)
player_id = models.ForeignKey(Player, on_delete=models.CASCADE)
team_id = models.ForeignKey(Team, on_delete=models.CASCADE)
points = models.IntegerField()
assists = models.IntegerField()
rebounds = models.IntegerField()