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 hashes)

Uploaded Python 3

Supported by

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