Модель Django с историческими изменениями

#django #django-models #model #onchange #history

Вопрос:

Как я могу показать исторические изменения модели, показать их и изменить? например

 class MM(models.Model):
        chnge1=model.ForeignKey('self')
        changeText = models.TextField(max_length=200)
 

Ответ №1:

Если вы используете Django для управления своими моделями, вы всегда можете просмотреть файлы миграции, чтобы узнать, что изменилось. Файлы миграции предназначены для отслеживания изменений в ваших моделях, чтобы Django мог применить эти изменения к базе данных.

Подробнее смотрите здесь: Миграции Django

Типичный файл миграции может выглядеть следующим образом:

 from django.db import migrations, models

class Migration(migrations.Migration):

    dependencies = [('migrations', '0001_initial')]

    operations = [
        migrations.DeleteModel('Tribble'),
        migrations.AddField('Author', 'rating', models.IntegerField(default=0)),
    ]
 

Вы можете видеть, что модель «Триббл» была удалена, а в модель «Автор» было добавлено поле «рейтинг».

Если у вас много миграций для одного приложения и вы не хотите просматривать каждый файл миграции, чтобы увидеть изменения, попробуйте «сжать» файлы миграции в (обычно) один файл, и вы сможете просмотреть все изменения оттуда.

Сокрушительные Миграции: Сокрушительные Миграции