wagtail-airtable


Namewagtail-airtable JSON
Version 0.6.0 PyPI version JSON
download
home_pagehttps://github.com/wagtail/wagtail-airtable
SummarySync data between Wagtail and Airtable
upload_time2023-04-13 10:05:21
maintainer
docs_urlNone
authorKalob Taulien
requires_python>=3.7,<4.0
license
keywords wagtail airtable
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            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"
}
        
Elapsed time: 0.05645s