From d18e79a83e8917d9959b5d3fb83fedcfba8ddfd3 Mon Sep 17 00:00:00 2001 From: collerek Date: Wed, 28 Oct 2020 13:57:39 +0100 Subject: [PATCH] change postgres check to dialect name --- ormar/models/model.py | 3 +-- ormar/models/newbasemodel.py | 4 ++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ormar/models/model.py b/ormar/models/model.py index eaf4935..9017db0 100644 --- a/ormar/models/model.py +++ b/ormar/models/model.py @@ -2,7 +2,6 @@ import itertools from typing import Any, Dict, List, Optional import sqlalchemy -from databases.backends.postgres import Record import ormar.queryset # noqa I100 from ormar.fields.many_to_many import ManyToManyField @@ -110,7 +109,7 @@ class Model(NewBaseModel): ) -> dict: # databases does not keep aliases in Record for postgres, change to raw row - source = row._row if isinstance(row, Record) else row + source = row._row if cls.db_backend_name() == "postgresql" else row selected_columns = cls.own_table_columns( cls, fields or [], nested=nested, use_alias=True diff --git a/ormar/models/newbasemodel.py b/ormar/models/newbasemodel.py index 5cf28bc..faab1c1 100644 --- a/ormar/models/newbasemodel.py +++ b/ormar/models/newbasemodel.py @@ -166,6 +166,10 @@ class NewBaseModel(pydantic.BaseModel, ModelTableProxy, metaclass=ModelMetaclass def pk_type(cls) -> Any: return cls.Meta.model_fields[cls.Meta.pkname].__type__ + @classmethod + def db_backend_name(cls) -> str: + return cls.Meta.database._backend._dialect.name + def remove(self, name: "Model") -> None: self._orm.remove_parent(self, name)