История Диффинга¶
Когда у вас есть два экземпляра одного и того же HistoricalRecord
(как в примере HistoricalPoll
выше), вы можете выполнить diffs, чтобы увидеть, что изменилось. В результате получится ModelDelta
, содержащий следующие свойства:
Список с указанием каждого поля, измененного между двумя историческими записями
Список с именами всех полей, в которых произошли изменения от одной записи к другой
старые и новые записи.
Это может быть полезно, когда вы хотите построить временную шкалу и вам нужно получить только модификации модели.
p = Poll.objects.create(question="what's up?")
p.question = "what's up, man?"
p.save()
new_record, old_record = p.history.all()
delta = new_record.diff_against(old_record)
for change in delta.changes:
print("{} changed from {} to {}".format(change.field, change.old, change.new))