Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 20, 2010 16:45:56

HammerSpb
От:
Зарегистрирован: 2010-12-20
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Версионность в Django

Коллеги, есть такая модель:

class Player(models.Model):
name = models.CharField(max_length=50)
def __unicode__(self):
return self.name

class Team(models.Model):
name = models.CharField(max_length=50)
players = models.ManyToManyField(Player, related_name="teams")
def __unicode__(self):
return self.name
Нужно добавить версионность.
То есть, когда мы изменяем поле Player.name или Team.name то предыдущие значения сохранялись бы в базу.

На уровне SQL я знаю как это сделать. Например:
Есть таблицы:
Player [idPlayer, name]
Team [idTeam, name]
PlayerInTeam [idPlayerInTeam, idPlayer, idTeam] - отношение Many2Many
– дальше историчность
PlayerHistory [idPlayer, name, date]
TeamHistory [idTeam, name, date]
PlayerInTeamHistory [idPlayerInTeam, idPlayer, idTeam, date]
Во время добавления или изменения данных в первых трех таблицах, вносятся изменения в соответствующих других трех таблицах с указанием времени изменений.
Таким образом можно посмотреть всю историю изменения значений таблицы.

Возникает вопрос!
Как это сделать средствами Django?



Отредактировано (Дек. 20, 2010 16:46:28)

Офлайн

#2 Дек. 20, 2010 17:08:17

razum2um
От:
Зарегистрирован: 2009-03-20
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

Офлайн

#3 Дек. 24, 2010 19:16:28

kmike
От:
Зарегистрирован: 2009-12-07
Сообщения: 56
Репутация: +  4  -
Профиль   Отправить e-mail  

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version