A utility that allows you to convert ORM models.
Project description
Orm-Converter
Installation
pip install orm-converter
or
pip install git+https://github.com/MaxZayats/orm-converter
Available conversions
TortoiseORM
->DjangoORM
Usage Examples
1. Simple Usage
from orm_converter.tortoise_to_django import ConvertedModel
from tortoise import fields
from tortoise.models import Model as TortoiseModel
class ExampleModel(TortoiseModel, ConvertedModel):
example_field = fields.IntField()
ExampleModel.DjangoModel # <- Converted Django Model
2. Redefining fields/attributes
from orm_converter.tortoise_to_django import (ConvertedModel,
RedefinedAttributes)
from tortoise.models import Model as TortoiseModel
from custom_django_fields import CustomDjangoField
from custom_tortoise_fields import CustomTortoiseField
class ExampleModel(TortoiseModel, ConvertedModel):
custom_field = CustomTortoiseField()
class RedefinedAttributes(RedefinedAttributes):
"""
In this class you can redefine your tortoise attributes to django attributes.
You can use this if you have a custom fields
Or if `orm_converter` converts fields incorrectly.
"""
custom_field = CustomDjangoField()
3. Adding custom converters
from orm_converter.tortoise_to_django import (BaseTortoiseFieldConverter,
ConvertedModel, Converter)
from tortoise.models import Model as TortoiseModel
from custom_django_fields import CustomDjangoField
from custom_tortoise_fields import CustomTortoiseField
class MyCustomFieldConverter(BaseTortoiseFieldConverter):
ORIGINAL_FIELD_TYPE = CustomTortoiseField
CONVERTED_FIELD_TYPE = CustomDjangoField
def _reformat_kwargs(self):
super()._reformat_kwargs()
# change field kwargs here
self._original_field_kwargs["custom_kwarg"] = "Django"
Converter.add_converters(MyCustomFieldConverter)
class ExampleModel(TortoiseModel, ConvertedModel):
custom_field = CustomTortoiseField(custom_kwarg="Tortoise")
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
orm_converter-0.2.2b0.tar.gz
(6.8 kB
view details)
Built Distribution
File details
Details for the file orm_converter-0.2.2b0.tar.gz
.
File metadata
- Download URL: orm_converter-0.2.2b0.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f595f37c58a704542ee94f3bb7b412397a1d4ea07fb31006a299ac7ba930edff |
|
MD5 | 7148afba7491391989515d773a988a1a |
|
BLAKE2b-256 | 4fabd9f1fcfc4e8c674ee9a57ba4e35c690e4de2afb8bd9659d0d4c61866337c |
File details
Details for the file orm_converter-0.2.2b0-py3-none-any.whl
.
File metadata
- Download URL: orm_converter-0.2.2b0-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2a16643d2194c04a25a128bbf5c63b35cbc97c93732bf2f87617d826647b181 |
|
MD5 | dcdbec54b7515dfa9c55895fe102e4c0 |
|
BLAKE2b-256 | 6219f6d3fb8f3c10777d55a9fbc684495717946304e77e4975a118567e753c45 |