Преобразование в SQLAlchemy из Django ORM в Django Rest Framework

У меня есть DRF-приложение. Оно написано на Django Rest Framework. Для работы с базами данных я использовал встроенный ORM Django. Позвольте мне объяснить структуру моего проекта. У меня есть проект django с именем TourReview. Внутри TourReview у меня есть приложение review. Вот мои ключевые файлы:

review/models.py :

from django.db import models
from django.core.validators import MinValueValidator, MaxValueValidator

# Create your models here.
class PlaceInfoModel(models.Model):
    TYPE_CHOICES = [
        ('Beach', 'Beach'),
        ('Hill', 'Hill'),
        ('Fountain', 'Fountain'),
        ('Landmark', 'Landmark')
    ]
    owner = models.ForeignKey('auth.User', related_name='review', 
                              on_delete=models.CASCADE, default=1)
    name = models.CharField(max_length=60)
    address = models.CharField(max_length=300)
    rating = models.FloatField(validators=[MinValueValidator(0), MaxValueValidator(5)])
    type = models.CharField(max_length=20, choices=TYPE_CHOICES)
    image = models.ImageField(upload_to='uploads/')

review/serializers.py:

from .models import PlaceInfoModel
from rest_framework import serializers

class PlaceInfoSerializer(serializers.ModelSerializer):
    class Meta:
        model = PlaceInfoModel
        fields = ['id', 'name', 'address', 'rating', 'type', 'image']
        read_only_fields = ['owner']
        

reviews/views.py:

from django.shortcuts import render
from .serializers import *
from .models import *
from rest_framework.decorators import APIView
from rest_framework import viewsets
from rest_framework.response import Response
from rest_framework.authentication import SessionAuthentication
from rest_framework.permissions import IsAuthenticatedOrReadOnly
from .custom_permission import IsPermittedForAction
from django.contrib.auth.views import LogoutView
from .serializers import *
from rest_framework.pagination import LimitOffsetPagination
from rest_framework.filters import OrderingFilter


class PlaceModelViewSet(viewsets.ModelViewSet):
    queryset = PlaceInfoModel.objects.all()
    serializer_class = PlaceInfoSerializer
    authentication_classes = [SessionAuthentication]
    permission_classes = [IsPermittedForAction,IsAuthenticatedOrReadOnly]
    pagination_class = LimitOffsetPagination
    filter_backends = [OrderingFilter]
    ordering_fields = ['id','name', 'rating', 'address']
    
    def perform_create(self, serializer):
        return serializer.save(owner=self.request.user)
    
    def perform_update(self, serializer):
        return serializer.save()

    
    
    
# Django 5 doesn't support logout GET view from now on. So added this.
class PatchLogoutView(LogoutView):
    http_method_names = ["get", "post", "options"]

    def get(self, request, *args, **kwargs):
        return self.post(request, *args, **kwargs)

TourReview/urls.py:

from django.contrib import admin
from django.urls import path,include
from rest_framework.routers import DefaultRouter
from review.views import PlaceModelViewSet,PatchLogoutView
from django.conf import settings
from django.conf.urls.static import static

router = DefaultRouter()
router.register('places',PlaceModelViewSet)

urlpatterns = [
    path('',include(router.urls)),
    path('admin/', admin.site.urls),
    path("api-auth/logout/", PatchLogoutView.as_view(), name="logout"),
    path("api-auth/", include("rest_framework.urls", namespace="rest_framework")),
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Итак, для замены Django ORM на SQLAlchemy (где я также собираюсь использовать базу данных SQLite), я просмотрел эту документацию. Там я узнал основы SQLAlchemy. И я ожидаю, что reviw/models.py будет выглядеть примерно так:

from django.db import models
from sqlalchemy import create_engine,ForeignKey
from sqlalchemy.orm import declarative_base,sessionmaker,relationship
from sqlalchemy import Column, String, Integer,Float
from django.core.validators import MinValueValidator, MaxValueValidator

engine = create_engine('sqlite:///db.sqlite3')
Base = declarative_base()
Session = sessionmaker(bind=engine)
session = Session()

class PlaceInfoModel(Base):
    __tablename__ = 'place_info'

    id = Column(Integer, primary_key=True)  
    name = Column(String(60))
    address = Column(String(300))
    rating = Column(Float)
    type = Column(String(20))
    image = Column(String)  

    owner_id = Column(Integer, ForeignKey('auth_user.id'))
    owner = relationship("User", back_populates="reviews")

class User(Base):
    __tablename__ = 'auth_user'

    id = Column(Integer, primary_key=True)

    reviews = relationship("PlaceInfoModel", back_populates="owner")

Я не знаю, правильно ли это или нет. Теперь я застрял на этом этапе и не знаю, как настроить мои review/serializers.py, review/views.py и TourReview/urls.py. Я хочу заменить встроенный в django ORM на SQLAlchemy, где я все еще планирую использовать базу данных SQLite. Было бы здорово, если бы я мог сделать это поверх предыдущей версии с Django ORM.

Вернуться на верх