Эффективный способ узнать количество стран в матчах Лиги и их количество очков в таблице очков Django - PullRequest
0 голосов
/ 30 апреля 2020

Я застрял с проблемой Домашнее задание и не имею понятия о дальнейших шагах. У меня есть три модели для работы с таблицей очков: Match, Score, Pointstable. Я работаю со светильниками в Match Model. И оценки Team1 и Team2 в Scores Model с их оценками. и, наконец, таблица баллов, как показано ниже. Я создал шаблон таблицы очков для обработки того же, который состоит из матчей для отдельной страны, выигранных, проигрышных, очков

моделей

class Match(models.Model):
    Bat_Bowl =(('Bat', 'Bat'), ('Bat', 'Bowl'))

    clubstate =  models.ForeignKey('Clubstate', on_delete=models.CASCADE, default=0)
    date = models.DateTimeField(default=datetime.now, blank= False)
    ground = models.CharField(max_length=100)
    Team1 = models.ForeignKey('TeamStructure', on_delete=models.CASCADE, related_name='team1',default = 0)
    Team2 = models.ForeignKey('TeamStructure', on_delete=models.CASCADE, related_name='team2',default = 0)
    Team1logo= models.ImageField(upload_to='images/', verbose_name = 'Team1 logo',default = 0)
    Team2logo= models.ImageField(upload_to='images/', verbose_name ='Team2 logo',default =0)
    League = models.CharField(max_length=100, default = 0)
    Toss_won_by =  models.ForeignKey('TeamStructure', on_delete=models.CASCADE, related_name='tosswon',default = 0)
    Elected_to = models.CharField(max_length=100,choices=Bat_Bowl) 

    def __str__(self):
        return str(self.Team1) + '  vs  ' + str(self.Team2) + ' Dated on ' + str(self.date.date()) +' at ' + str(self.ground)


    def toss_won(self):
        return 'Toss Won by ' + str(self.Toss_won_by) + ' and elected to ' +  str(self.Elected_to) + ' first'
class Score(models.Model):

    matches_between = models.ForeignKey('Match',on_delete = models.CASCADE, related_name ='fixture_between')
    Team1 = models.ForeignKey('TeamStructure', on_delete=models.CASCADE, related_name='teamA',default = 0)
    Team2 = models.ForeignKey('TeamStructure', on_delete=models.CASCADE, related_name='teamB',default = 0)
    team1Score = models.IntegerField(default = 0)
    team2Score = models.IntegerField(default = 0)

    def runs_gap(self):
        if self.team1Score > self.team2Score:
            return str(self.Team1) + ' won by ' +  str(self.team1Score - self.team2Score) + ' runs '
        else:
            return str(self.Team2) + ' won by ' + str(self.team2Score - self.team1Score) + ' runs '

    def team1_count(self): 
        team_count1 = {i["Team1"]: i["count"] for i in order_items.objects.values('Team1').order_by().annotate(count=Count('Team1'))}
        return team_count1

    def team2_count(self):
        team_count2 = {i["Team1"]: i["count"] for i in order_items.objects.values('Team2').order_by().annotate(count=Count('Team2'))}
        return team_count2

    def __str__(self):
        if self.team1Score > self.team2Score:
           return str(self.Team1)
        else:
            return str(self.Team2)
class PointsTable(models.Model):
    country = models.ForeignKey('TeamStructure', on_delete=models.CASCADE, null=True,  related_name='cont')
    team_won = models.ForeignKey('Score', on_delete=models.CASCADE, null=True,  related_name='won')


    def points_to_team(self):
        points={}
        points['team_won'] = 0
        if self.country == self.team_won:
            points[team_won] += 1
            return points

    def sorted_Country(self):
        # logic for sorted country based on points
        return 

Я сделал team1_count и team1_coun2 функции для подсчета количества совпадений. например: США против Лондона -> Я рассчитываю количество США отдельно и количество Лондонов отдельно, так что США ИЛИ Лондон существует в team_count и team_count2 не пропустит и, наконец, добавит их, чтобы получить индивидуальный счет страны.

Во-вторых, в модели очков __ str __ выдает команду, которая выиграла матч. Основываясь на победе в матче, я пытаюсь рассчитать баллы для страны и отсортировать их по возрастанию в pointstable Model.

Я новичок в Django и могу понять, что мой Подход не эффективен, и я застрял здесь. Спасибо за предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...