Wagtail/Airtable
================
An extension for Wagtail allowing content to be transferred between Airtable sheets and your Wagtail/Django models.
Developed by `Torchbox <https://torchbox.com/>`_ and sponsored by `The Motley Fool <https://www.fool.com/>`_.
.. image:: https://raw.githubusercontent.com/wagtail/wagtail-airtable/master/examples/preview.gif
`View the repo README for more details <https://github.com/wagtail/wagtail-airtable/>`_
****************************
Installation & Configuration
****************************
* Install the package with ``pip install wagtail-airtable``
* Add ``'wagtail_airtable'`` to your project's ``INSTALLED_APPS``
* In your settings you will need to map models to Airtable settings. Every model you want to map to an Airtable sheet will need:
* An ``AIRTABLE_BASE_KEY``. You can find the base key in your Airtable docs when you're signed in to Airtable.com
* An ``AIRTABLE_TABLE_NAME`` to determine which table to connect to.
* An ``AIRTABLE_UNIQUE_IDENTIFIER``. This can either be a string or a dictionary mapping the Airtable column name to your unique field in your model.
* ie. ``AIRTABLE_UNIQUE_IDENTIFIER: 'slug',`` this will match the ``slug`` field on your model with the ``slug`` column name in Airtable. Use this option if your model field and your Airtable column name are identical.
* ie. ``AIRTABLE_UNIQUE_IDENTIFIER: {'Airtable Column Name': 'model_field_name'},`` this will map the ``Airtable Column Name`` to a model field called ``model_field_name``. Use this option if your Airtable column name and your model field name are different.
* An ``AIRTABLE_SERIALIZER`` that takes a string path to your serializer. This helps map incoming data from Airtable to your model fields. Django Rest Framework is required for this. See the [examples/](examples/) directory for serializer examples.
* Lastly make sure you enable wagtail-airtable with ``WAGTAIL_AIRTABLE_ENABLED = True``. By default this is disabled so data in your Wagtail site and your Airtable sheets aren't accidentally overwritten. Data is hard to recover, this option helps prevent accidental data loss.
**************************
Example Base Configuration
**************************
Below is a base configuration or ``ModelName`` and ``OtherModelName`` (both are registered Wagtail snippets), along with ``HomePage``.
.. code-block:: python
# your settings.py
AIRTABLE_API_KEY = 'yourSuperSecretKey'
WAGTAIL_AIRTABLE_ENABLED = True
AIRTABLE_IMPORT_SETTINGS = {
'appname.ModelName': {
'AIRTABLE_BASE_KEY': 'app3ds912jFam032S',
'AIRTABLE_TABLE_NAME': 'Your Airtable Table Name',
'AIRTABLE_UNIQUE_IDENTIFIER': 'slug', # Must match the Airtable Column name
'AIRTABLE_SERIALIZER': 'path.to.your.model.serializer.CustomModelSerializer'
},
'appname.OtherModelName': {
'AIRTABLE_BASE_KEY': 'app4ds902jFam035S',
'AIRTABLE_TABLE_NAME': 'Your Airtable Table Name',
'AIRTABLE_UNIQUE_IDENTIFIER': {
'Page Slug': 'slug', # 'Page Slug' column name in Airtable, 'slug' field name in Wagtail.
},
'AIRTABLE_SERIALIZER': 'path.to.your.model.serializer.OtherCustomModelSerializer'
},
'pages.HomePage': {
'AIRTABLE_BASE_KEY': 'app2ds123jP23035Z',
'AIRTABLE_TABLE_NAME': 'Wagtail Page Tracking Table',
'AIRTABLE_UNIQUE_IDENTIFIER': {
'Wagtail Page ID': 'pk',
},
'AIRTABLE_SERIALIZER': 'path.to.your.pages.serializer.PageSerializer',
# Below are OPTIONAL settings.
# By disabling `AIRTABLE_IMPORT_ALLOWED` you can prevent Airtable imports
# Use cases may be:
# - disabling page imports since they are difficult to setup and maintain,
# - one-way sync to Airtable only (ie. when a model/Page is saved)
# Default is True
'AIRTABLE_IMPORT_ALLOWED': False,
# Add the AIRTABLE_BASE_URL setting if you would like to provide a nice link
# to the Airtable Record after a snippet or Page has been saved.
# To get this URL open your Airtable base on Airtable.com and paste the link.
# The recordId will be automatically added so please don't add that
# You can add the below setting. This is optional and disabled by default.
'AIRTABLE_BASE_URL': 'https://airtable.com/tblxXxXxXxXxXxXx/viwxXxXxXxXxXxXx',
},
# ...
}
`View the repo README for more details <https://github.com/wagtail/wagtail-airtable/>`_
Raw data
{
"_id": null,
"home_page": "https://github.com/wagtail/wagtail-airtable",
"name": "wagtail-airtable",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7,<4.0",
"maintainer_email": "",
"keywords": "wagtail,airtable",
"author": "Kalob Taulien",
"author_email": "kalob.taulien@torchbox.com",
"download_url": "",
"platform": null,
"description": "Wagtail/Airtable\n================\n\nAn extension for Wagtail allowing content to be transferred between Airtable sheets and your Wagtail/Django models.\n\nDeveloped by `Torchbox <https://torchbox.com/>`_ and sponsored by `The Motley Fool <https://www.fool.com/>`_.\n\n.. image:: https://raw.githubusercontent.com/wagtail/wagtail-airtable/master/examples/preview.gif\n\n`View the repo README for more details <https://github.com/wagtail/wagtail-airtable/>`_\n\n****************************\nInstallation & Configuration\n****************************\n\n* Install the package with ``pip install wagtail-airtable``\n* Add ``'wagtail_airtable'`` to your project's ``INSTALLED_APPS``\n* In your settings you will need to map models to Airtable settings. Every model you want to map to an Airtable sheet will need:\n * An ``AIRTABLE_BASE_KEY``. You can find the base key in your Airtable docs when you're signed in to Airtable.com\n * An ``AIRTABLE_TABLE_NAME`` to determine which table to connect to.\n * An ``AIRTABLE_UNIQUE_IDENTIFIER``. This can either be a string or a dictionary mapping the Airtable column name to your unique field in your model.\n * ie. ``AIRTABLE_UNIQUE_IDENTIFIER: 'slug',`` this will match the ``slug`` field on your model with the ``slug`` column name in Airtable. Use this option if your model field and your Airtable column name are identical.\n * ie. ``AIRTABLE_UNIQUE_IDENTIFIER: {'Airtable Column Name': 'model_field_name'},`` this will map the ``Airtable Column Name`` to a model field called ``model_field_name``. Use this option if your Airtable column name and your model field name are different.\n * An ``AIRTABLE_SERIALIZER`` that takes a string path to your serializer. This helps map incoming data from Airtable to your model fields. Django Rest Framework is required for this. See the [examples/](examples/) directory for serializer examples.\n\n* Lastly make sure you enable wagtail-airtable with ``WAGTAIL_AIRTABLE_ENABLED = True``. By default this is disabled so data in your Wagtail site and your Airtable sheets aren't accidentally overwritten. Data is hard to recover, this option helps prevent accidental data loss.\n\n**************************\nExample Base Configuration\n**************************\n\nBelow is a base configuration or ``ModelName`` and ``OtherModelName`` (both are registered Wagtail snippets), along with ``HomePage``.\n\n.. code-block:: python\n\n # your settings.py\n AIRTABLE_API_KEY = 'yourSuperSecretKey'\n WAGTAIL_AIRTABLE_ENABLED = True\n AIRTABLE_IMPORT_SETTINGS = {\n 'appname.ModelName': {\n 'AIRTABLE_BASE_KEY': 'app3ds912jFam032S',\n 'AIRTABLE_TABLE_NAME': 'Your Airtable Table Name',\n 'AIRTABLE_UNIQUE_IDENTIFIER': 'slug', # Must match the Airtable Column name\n 'AIRTABLE_SERIALIZER': 'path.to.your.model.serializer.CustomModelSerializer'\n },\n 'appname.OtherModelName': {\n 'AIRTABLE_BASE_KEY': 'app4ds902jFam035S',\n 'AIRTABLE_TABLE_NAME': 'Your Airtable Table Name',\n 'AIRTABLE_UNIQUE_IDENTIFIER': {\n 'Page Slug': 'slug', # 'Page Slug' column name in Airtable, 'slug' field name in Wagtail.\n },\n 'AIRTABLE_SERIALIZER': 'path.to.your.model.serializer.OtherCustomModelSerializer'\n },\n 'pages.HomePage': {\n 'AIRTABLE_BASE_KEY': 'app2ds123jP23035Z',\n 'AIRTABLE_TABLE_NAME': 'Wagtail Page Tracking Table',\n 'AIRTABLE_UNIQUE_IDENTIFIER': {\n 'Wagtail Page ID': 'pk',\n },\n 'AIRTABLE_SERIALIZER': 'path.to.your.pages.serializer.PageSerializer',\n # Below are OPTIONAL settings.\n # By disabling `AIRTABLE_IMPORT_ALLOWED` you can prevent Airtable imports\n # Use cases may be:\n # - disabling page imports since they are difficult to setup and maintain,\n # - one-way sync to Airtable only (ie. when a model/Page is saved)\n # Default is True\n 'AIRTABLE_IMPORT_ALLOWED': False,\n # Add the AIRTABLE_BASE_URL setting if you would like to provide a nice link\n # to the Airtable Record after a snippet or Page has been saved.\n # To get this URL open your Airtable base on Airtable.com and paste the link.\n # The recordId will be automatically added so please don't add that\n # You can add the below setting. This is optional and disabled by default.\n 'AIRTABLE_BASE_URL': 'https://airtable.com/tblxXxXxXxXxXxXx/viwxXxXxXxXxXxXx',\n },\n # ...\n }\n\n`View the repo README for more details <https://github.com/wagtail/wagtail-airtable/>`_\n\n",
"bugtrack_url": null,
"license": "",
"summary": "Sync data between Wagtail and Airtable",
"version": "0.6.0",
"split_keywords": [
"wagtail",
"airtable"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f6c3e3715d98b28b6d1db5002fbe9b700b50e7417e59d182023082736651803a",
"md5": "105d8c4e6574f50fa763451f7afe48e0",
"sha256": "51254f3b08f0e23287201ccfdbea32c3752afa7f0bce34d12a5ea1b146509ee5"
},
"downloads": -1,
"filename": "wagtail_airtable-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "105d8c4e6574f50fa763451f7afe48e0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7,<4.0",
"size": 26819,
"upload_time": "2023-04-13T10:05:21",
"upload_time_iso_8601": "2023-04-13T10:05:21.114793Z",
"url": "https://files.pythonhosted.org/packages/f6/c3/e3715d98b28b6d1db5002fbe9b700b50e7417e59d182023082736651803a/wagtail_airtable-0.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-13 10:05:21",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "wagtail",
"github_project": "wagtail-airtable",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "wagtail-airtable"
}