Sync remote API resources to Django models
Project description
Django remote resources
Sync remote API resources to Django models
Quick start
pip install django-remote-resources
Add AbstractRemoteResource
to your model (1), and define a mapping between the fields in the remote data to your
model's fields (2), and create a custom QuerySet manager for the model, inheriting from RemoteResourceQuerySet
and
define method get_remote_data_iterator
(3). Optionally define a remote_data_key_field
that points to a unique
identifier on the remote data (4).
class ResourceMirrorQuerySet( # (3)
RemoteResourceQuerySet
):
def get_remote_data_iterator(self, *args, **kwargs):
client = RemoteClient()
return client.get_data(**kwargs) # should return an iterator, with each item representing a page of data
class ResourceMirror(
AbstractRemoteResource, # (1)
models.Model
):
remote_id = models.CharField(max_length=255)
name = models.CharField(max_length=255)
email = models.EmailField()
objects = ResourceMirrorQuerySet.as_manager() # (3)
remote_to_model_fields_map = { # (2)
'id': 'remote_id',
'name': 'name',
'email': 'email',
}
remote_data_key_field = 'id' # (4)
Development and Testing
IDE Setup
Add the example
directory to the PYTHONPATH
in your IDE to avoid seeing import warnings in the tests
modules. If
you are using PyCharm, this is already set up.
Running the Tests
Install requirements
pip install -r requirements.txt
For local environment
pytest
For all supported environments
tox
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-remote-resources-0.2.0a8.tar.gz
.
File metadata
- Download URL: django-remote-resources-0.2.0a8.tar.gz
- Upload date:
- Size: 7.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 360cd74a9e86b38c2c95f3aaadc61d110d81c98b6b29ab539bc48631ecc7fbd8 |
|
MD5 | ff4e01c3d2c03e394f73b2096cf9cdb5 |
|
BLAKE2b-256 | 24840ca47adad0c59bd4fc55f4946038948b7ded1f2f8622f628e217a80c46c7 |
File details
Details for the file django_remote_resources-0.2.0a8-py3-none-any.whl
.
File metadata
- Download URL: django_remote_resources-0.2.0a8-py3-none-any.whl
- Upload date:
- Size: 9.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8cb5ff707d3cddf710e9d983ea350054496fe43024cb4002f0fa2d8c156fa021 |
|
MD5 | 29d2b3906bc7747cb3fd2d0ec6391678 |
|
BLAKE2b-256 | 6429b48a721f9cac02b208048b7e264b896dc60aa1401939bcd90104cfd1929a |