Integration of Tortoise orm into a Django project with one line of code
Project description
This python package is the simplest way to use Tortoise ORM in an existing (maybe not) Django project that uses sqlite or PostgreSQL databases
Features
Saving all Django ORM advantages (migrations - the biggest one)
Monkey patching existing Django models with generated on-the-fly Tortoise ORM models
Generated Tortoise ORM models have the same behavior as Django models (fields behavior)
Support all Django models fields and validators added to them (except FileFiled, FilePathField, ImageField)
Support default database only (DATABASES[‘default’] from the setting.py)
You can use Django models or Tortoise ORM models when you want (use Django models when it’s more suitable than usage of Tortoise ORM models)
There are enough limitations that are not described here, so most likely some thing is not supported (pre-alpha release =)
Easy to use - just one line of code… Okay, two ;)
Quickstart
Install django-tortoise:
pip install django-tortoise
Modify the asgi.py in the main Django project folder:
import os
from django.core.asgi import get_asgi_application
from django_tortoise import get_boosted_asgi_application # first line
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings')
application = get_asgi_application()
# get_boosted_asgi_application function monkey patch all registered apps models;
# each model will has abjects attribute (the objects attribute was not modified),
# which is a Tortoise model actually
application = get_boosted_asgi_application(application) # second line
Now you can use all valid Tortoise ORM queries via <model>.abjects attribute:
await ModelA.abjects.get(id=id)
Running Tests
$ 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 Distributions
Built Distribution
Hashes for django_tortoise-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d453eeaa9c875293b881c9f77e8a7532ca59b1f7c2fa82ea801f13e3288f6d01 |
|
MD5 | 0768b116481a878e4d0b0f86974a2ef1 |
|
BLAKE2b-256 | 33855cb24fc0c07250326ee90b606b325db8e8221cb6dbd17d79de430dfbd67c |