Применение миграций для модели перевода
Мы удалили старые поля из наших моделей перед адаптацией админ-панели. Теперь необходимо создать миграцию для этого изменения. Откройте терминал и выполните следующую команду:
python manage.py makemigrations shop --name "remove_untranslated_fields"
Будут выведены следующие данные:
Migrations for 'shop':
0004_remove_untranslated_fields.py:
- Remove field name from category
- Remove field slug from category
- Remove field description from product
- Remove field name from product
- Remove field slug from product
С помощью этой миграции мы удаляем исходные поля и сохраняем переводимые поля.
Таким образом мы создали следующие миграции:
- Добавлены поля для перевода в модели.
- Перенос существующих данных из исходных полей в поля перевода.
- Удалены исходные поля из моделей.
Выполните следующую команду для применения трех созданных нами миграций:
python manage.py migrate shop
Будет выведен результат, включающий следующие строки:
Applying shop.0002_add_translation_model... OK
Applying shop.0003_migrate_translatable_fields... OK
Applying shop.0004_remove_untranslated_fields... OK
Теперь наши модели синхронизированы с базой данных. Давайте переведем объект.
Запустите сервер разработки с помощью python manage.py runserver
и откройте в браузере http://127.0.0.1:8000/en/admin/shop/category/add/ . Вы увидите, что страница Add category содержит две вкладки: одна для английского языка, другая для переводов на испанский.
Теперь можно добавить перевод и нажать кнопку Save. Перед изменением убедитесь, что внесенные изменения сохранены.