Import and export content between diffent hosts using the API

Gerbi CMS comes with a simple API that uses Django REST Framework. You can enable the API by setting the PAGE_API_ENABLED in the CMS settings to True.

When this is done, your host should have an API at the following address <address of your cms>/api/

Pulling data from a host: pages_pull

From example if you enabled the API on your local development instance you can do:

$ python pages_pull staff_account_name:password
Fetching page data on
data/download.json written to disk

The default for the host is the localhost ( This command accept the option –filename and –host

Pushing data to a host: pages_push

Similarly you can push the collected data to an host:

python pages_push staff_account_name:password
Fetching the state of the pages on the server
Update page 1 .............
Update page 2 ....
Update page 3 ....

This command accepts the option –filename and –host


The push command does it’s best creating and updating pages between 2 hosts but equivalency cannot be guaranteed. Also files associated with the pages are yet not transfered using this API.

To best syncronise 2 hosts (A:production, B: staging) first pull from A and push the content to B to have an accurate representation of production data.

Do your modification on B then then push back on A.

Export pages content into translatable PO files

The pages CMS provide a command for those that would prefer to use PO files instead of the admin inteface to translate the pages content.

To export all the content from the published page into PO files you can execute this Django command:

$ python pages_export_po <path>

The files a created in the poexport directory if no path is provided.

After the translation is done, you can import back the changes with another command:

$ python pages_import_po <path>