class Player(models.Model): number = models.IntegerField(u'Номер', blank=True, null=True) last_name = models.CharField(u'Фамилия', max_length=100) name = models.CharField(u'Имя', max_length=100) class Match(models.Model): tournament = models.ForeignKey(Tournament, verbose_name=u'Турнир', on_delete=models.CASCADE) tour = models.ForeignKey(Tour, verbose_name=u'Тур', on_delete=models.CASCADE) structure_home = models.ManyToManyField( Player, verbose_name=u'Состав команды хозяев', related_name='home_players', blank=True) class Statistics(models.Model): player = models.ForeignKey(Player, verbose_name=u'Игрок', on_delete=models.CASCADE) tournament = models.ForeignKey('tournaments.Tournament', verbose_name=u'Турнир', on_delete=models.CASCADE) ... games = models.IntegerField(u'Игры', default=0) ...
Для игрока мне необходимо считать количество матчей (games), в которых он принял участие. Я бы хотел при сохранении матча делать так:
если игрока добавили в structure_home, то games прибавить 1, если игрока удалили из structure_home, то соответственно games отнять 1.
Соответственно мне для этого надо знать каким был structure_home до сохранения и каким стал после.
Как это возможно сделать?