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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django-remote-resources-0.2.0a13.tar.gz.
File metadata
- Download URL: django-remote-resources-0.2.0a13.tar.gz
- Upload date:
- Size: 7.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47ba370b712b834a0aec65d5efbdf5cc6e20d3a2dff89061dee4cfe269996f05
|
|
| MD5 |
989a08522f0d802f195f5d5e152aa22f
|
|
| BLAKE2b-256 |
8cc6a5f8e34af357955244ecee4a441d78fc1a89ea85865195e6a58c16dfc36a
|
File details
Details for the file django_remote_resources-0.2.0a13-py3-none-any.whl.
File metadata
- Download URL: django_remote_resources-0.2.0a13-py3-none-any.whl
- Upload date:
- Size: 9.7 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 |
52da2d431ddb8b80e9c90b2dad173eeafbb05aaf34ddc648af090fa8f8378ce4
|
|
| MD5 |
0e4382f8d4a99cacfe34e34e47452719
|
|
| BLAKE2b-256 |
ed8dcd30ae029a59bb8d890f439d0f3469f1f1af8cc4dd7542babd35e9b7360e
|