после удаления модели django по-прежнему возникает ошибка - PullRequest
0 голосов
/ 18 ноября 2018

Я создал модель в models.py, но забыл добавить поле слаг.Ошибка Key (slug)=() is duplicated появляется после команды python manage.py migrate.Поэтому я удалил свою модель и поле slug и снова запустил команду переноса, но все равно команда python manage.py migrate показывает ту же ошибку.Я не могу удалить всю свою базу данных, потому что у меня есть данные, хранящиеся и в других моделях.Вот вывод команды python manage.py showmigrations :

admin
[X] 0001_initial
[X] 0002_logentry_remove_auto_add
[X] 0003_logentry_add_action_flag_choices
auth
[X] 0001_initial
[X] 0002_alter_permission_name_max_length
[X] 0003_alter_user_email_max_length
[X] 0004_alter_user_username_opts
[X] 0005_alter_user_last_login_null
[X] 0006_require_contenttypes_0002
[X] 0007_alter_validators_add_error_messages
[X] 0008_alter_user_username_max_length
[X] 0009_alter_user_last_name_max_length
contenttypes
[X] 0001_initial
[X] 0002_remove_content_type_name
schooldekho
[X] 0001_initial
[X] 0002_auto_20181114_0012
[X] 0003_auto_20181114_0041
[X] 0004_auto_20181114_0043
[X] 0005_auto_20181116_1759
[X] 0006_school
[ ] 0007_school_slug
[ ] 0008_auto_20181116_2259
[ ] 0009_auto_20181116_2300
[ ] 0010_auto_20181116_2304
[ ] 0011_remove_school_slug
[ ] 0012_auto_20181118_2238
sessions
[X] 0001_initial

Все, что мне нужно, - это успешно запустить миграцию без ошибок.

1 Ответ

0 голосов
/ 19 ноября 2018

Вам необходимо создать миграцию, которая добавит SlugField с null=True и без default, заданным для default=None. Затем создайте пустую миграцию и измените ее так, чтобы вы заполнили поле slug, которое было добавлено в предыдущей миграции. Затем вы можете создать новую миграцию, которая снимет ограничение null=True.

Короткая версия:

  1. Создать столбец со значением NULL
  2. Заполните все нулевые значения для столбца с помощью переноса данных.
  3. Сделать столбец не обнуляемым.
...