https://github.com/psypherpunk/django-annotator
Django implementation of annotatorjs's Storage/Search API.
https://github.com/psypherpunk/django-annotator
annotator django
Last synced: about 1 year ago
JSON representation
Django implementation of annotatorjs's Storage/Search API.
- Host: GitHub
- URL: https://github.com/psypherpunk/django-annotator
- Owner: PsypherPunk
- License: apache-2.0
- Created: 2017-02-21T10:58:59.000Z (about 9 years ago)
- Default Branch: main
- Last Pushed: 2025-03-10T09:56:27.000Z (about 1 year ago)
- Last Synced: 2025-03-10T10:37:26.853Z (about 1 year ago)
- Topics: annotator, django
- Language: Python
- Size: 190 KB
- Stars: 8
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `django-annotator`
Django implementation of [annotatorjs Storage](http://annotatorjs.org/).
Implements most of the methods as per the
[Core Storage/Search API](http://docs.annotatorjs.org/en/v1.2.x/storage.html#core-storage-api)
documentation (`root`, `index`, `create`, `read`, `update`,`delete` and
`search`).
To see a working demo:
```sh
poetry install
poetry run python3 ./demo.py
```
This will run the tests, after which a demo. page will be available at `/demo`.
## Installation
The package can be installed via `poetry`:
```sh
poetry add django-annotator
```
Following installation it can be added to any Django project by updating the
`INSTALLED_APPS`, along with its dependencies:
```python
INSTALLED_APPS = (
...
"rest_framework",
"django_filters",
"annotator",
)
```
As per the integration
[documentation](https://django-filter.readthedocs.io/en/latest/guide/rest_framework.html)
for `django-filter`, `DEFAULT_FILTER_BACKENDS` must also be added to
`settings.py`:
```python
REST_FRAMEWORK = {
"DEFAULT_FILTER_BACKENDS": (
"django_filters.rest_framework.DjangoFilterBackend",
),
},
```
Then run `migrate` to include the new tables from `django-annotator`:
```sh
poetry run python3 ./manage.py migrate
```
## Annotator
The package relies on *Annotator* being installed in your project—see the
[documentation](http://docs.annotatorjs.org/en/v1.2.x/getting-started.html) for
details of its inclusion.
## Settings
As per Annotator's documentation, the
[root](http://docs.annotatorjs.org/en/v1.2.x/storage.html#root) endpoint will
return information in the format:
```json
{
"name": "django-annotator-store",
"version": "2.1.0"
}
```
The `name` returned can be configured by setting `ANNOTATOR_NAME` in your
`settings` (defaulting to the above).
## `django-cors-headers`
If you have any issues with *Cross-origin resource sharing (CORS)*, consider
installing
[`django-cors-headers`](https://github.com/ottoyiu/django-cors-headers).