Найти - Пользователи
Полная версия: Версионность в Django
Начало » Django » Версионность в Django
1
HammerSpb
Коллеги, есть такая модель:

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?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB