Management Commands

wagtail_modeltranslation

wagtail_modeltranslation module adds the following management commands.

The update_translation_fields Command

This command is a proxy to django-modeltranslation’s own update_translation_fields, for more details read the corresponding documentation on django-modeltranslation docs.

In case modeltranslation was installed in an existing project and you have specified to translate fields of models which are already synced to the database, you have to update your database schema.

Unfortunately the newly added translation fields on the model will be empty then, and your templates will show the translated value of the fields which will be empty in this case. To correctly initialize the default translation field you can use the update_translation_fields command:

$ python manage.py update_translation_fields

The sync_page_translation_fields Command

New in version 0.8.

This command compares the database and translated Page model definition (finding new translation fields) and provides SQL statements to alter wagtailcore_page table. You should run this command after installation and after adding a new language to your settings.LANGUAGES.

$ python manage.py sync_page_translation_fields

The makemigrations_translation Command

New in version 0.8.

wagtail-modeltranslation patches Wagtail’s Page model and as consequence Django’s original makemigrations commmand will create migrations for Page which may create conflicts with other migrations. To circumvent this issue makemigrations_translation hides any Page model changes and creates all other migrations as usual. Use this command as an alternative to Django’s own makemigrations or consider using The makemigrations Command.

$ python manage.py makemigrations_translation

The migrate_translation Command

New in version 0.8.

Since The makemigrations_translation Command hides any Page model changes, Django’s own migrate command won’t be able to update wagtailcore_page table with new translation fields. In order to correctly update the database schema a combination of migrate followed by sync_page_translation_fields is usually required. migrate_translation provides a shortcut to running these two commands. Use this as an alternative to Django’s own migrate or consider using The migrate Command.

$ python manage.py migrate_translation

The set_translation_url_paths Command

Updates url_path translation fields for all pages.

$ python manage.py set_translation_url_paths

wagtail_modeltranslation.makemigrations

To use wagtail_modeltranslation.makemigrations module commands add 'wagtail_modeltranslation.makemigrations,' to INSTALLED_APPS. This module adds the following management commands.

The makemigrations Command

This command is a proxy for The makemigrations_translation Command. It has the added benefit of overriding Django’s own makemigrations allowing you to run makemigrations safely without creating spurious Page migrations.

$ python manage.py makemigrations

The makemigrations_original Command

Since Django’s makemigrations is overriden by wagtail-modeltranslation’s version use makemigrations_original to run the Django’s original makemigrations command. Please note this will likely create invalid Page migrations, do this only if you know what you’re doing.

$ python manage.py makemigrations_original

wagtail_modeltranslation.migrate

To use wagtail_modeltranslation.migrate module commands add 'wagtail_modeltranslation.migrate,' to INSTALLED_APPS. This module adds the following management commands.

The migrate Command

This command is a proxy for The migrate_translation Command. It has the added benefit of overriding Django’s own migrate saving the need to additionally run sync_page_translation_fields. See issue #175 to understand how this command can be used to create translation fields in a test database.

$ python manage.py migrate

The migrate_original Command

Since Django’s migrate is overriden by wagtail-modeltranslation’s version use migrate_original to run the Django’s original migrate command. Please note this will not update wagtailcore_page table with new translation fields, use sync_page_translation_fields for that.

$ python manage.py migrate_original