Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

django_tortoise-0.0.1-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file django_tortoise-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_tortoise-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d453eeaa9c875293b881c9f77e8a7532ca59b1f7c2fa82ea801f13e3288f6d01
MD5 0768b116481a878e4d0b0f86974a2ef1
BLAKE2b-256 33855cb24fc0c07250326ee90b606b325db8e8221cb6dbd17d79de430dfbd67c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page