Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Как отследить изменения many_to_many полей у модели в админке [RSS Feed]

#1 Авг. 28, 2018 05:43:52

tol_drew
Зарегистрирован: 2014-09-24
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Как отследить изменения many_to_many полей у модели в админке

Есть модели Player и Match, связанные many_to_many

 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 до сохранения и каким стал после.
Как это возможно сделать?

Отредактировано tol_drew (Авг. 28, 2018 05:46:24)

Офлайн

  • Начало
  • » Django
  • » Как отследить изменения many_to_many полей у модели в админке[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version