«Ошибка типа: аргумент типа» метод «не является итераве» при инициализации объекта SQLALCHEMY ORMPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 «Ошибка типа: аргумент типа» метод «не является итераве» при инициализации объекта SQLALCHEMY ORM

Сообщение Anonymous »

У меня есть SQLALCHEMY ORM с SQLALCHEMY 2.0 с использованием MAPPER_COLUMN () и Deklarative Base. Мое приложение начинается с сокола и стрелкового рана в моем Pycharm venv с Python3.12. < /P>
Таблицы базы данных создаются правильно с помощью: < /p>

Код: Выделить всё

models.Base.metadata.create_all(self.engine)
У меня есть база данных Postgres, и все таблицы с их столбцами создаются правильно, а также вручное создание записи работает нормально.
Но создание записи с использованием объекта sqlalchemy init с ошибкой, с ошибкой, которую я не понимаю.

Код: Выделить всё

from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column, relationship

class Base(DeclarativeBase):
pass

class VirtualMachine(Base):
__tablename__ = "virtual_machine"

vm_id: Mapped[int] = mapped_column(primary_key=True)
object_name: Mapped[str] = mapped_column()

def __init__(self, object_name: str):
self.vm_id = 1
self.object_name = object_name

def __repr__(self):
pass

def __dict__(self):
pass
< /code>
Это не первый раз, когда я использую SQLalchemy ORM для управления базами данных, но я понятия не имею, что означает это сообщение об ошибке, пытаясь создать объект «VirtualMachine» в моих модульных тестах. < /p>
class TestVM(unittest.TestCase):
def setUp(self):
self.data = {
"object_name": "test-vm"
}
engine = sqlalchemy.create_engine(connect_str)
self.db = engine.connect()

def test_create_vm(self):
self.test_vm = VirtualMachine(**self.data)
< /code>

ошибка

traceback (самый последний вызов последний):

file "/api/tests/orm_test/vm_object_test.py", строка 51, in test_create_vm

self. VirtualMachine (** self.data)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

file "", строка 4, в [b] init < /strong>

файл "/api/venv/lib64/python3.12/site-packages/sqlalchemy/orm/state.py", Line 571, в  initiaze_instance

с util.safe_reraise ():
file file "/api/venv/lib64/python3.12/site-packages/sqlalchemy/util/langhelpers.py", Line 146, в  exit [/b]

exc_value.with_traceback (exc_tb)

файл "/api/venv/lib64/python3.12/site-packages/sqlalchemy/orm/state.py", line 569, в  initiaze_instance

manager.original_init(*Mixed=:], ** kwargs)

"/api/src/database/models.py", строка 58, в [b] init < /strong>

self.vm_id = 1

^^^^^^^^^^^^^

file "/api/venv/lib64/python3.12/site-packages/sqlalchemy/orm/attributes.py", Line 537, в  set [/b]

self.set 1.

file "/api/venv/lib64/python3.12/site-packages/sqlalchemy/orm/attributes.py", строка 1272, в наборе

old = self.get (состояние, dict , passive_return_no_value) /> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ DICT < /em>:

^^^^^^^^^^^^^^^^^^^^ < /p>
typeerror: аргумент метода типа 'не является имитируемым < /p>
< /blockquote>
. Если бы UUID.UUID 
в качестве сопоставления [type] , и у меня была интегрированная асинсио, которую я сейчас не везде держусь везде, и теперь запустил приложение WSGI.
Я думал, что это может быть проблем>

Подробнее здесь: https://stackoverflow.com/questions/792 ... ing-sqlalc
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»