Sqlmodel ValueError: <класс 'list'> не имеет соответствующего типа SQLAlchemyPython

Программы на Python
Ответить
Anonymous
 Sqlmodel ValueError: <класс 'list'> не имеет соответствующего типа SQLAlchemy

Сообщение Anonymous »

Учитывая эти классы и отношения 1 к N, я получаю ошибку времени компиляции: ValueError: не имеет соответствующего типа SQLAlchemy, ссылаясь на задачи поля Category.py: list["Todo"], хотя связь герой/команда работает.
Я также пытался заменить тип UUID и использовать int в обоих классах, без успех.
# hero.py (works)
class Hero(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
....

team_id: int | None = Field(default=None, foreign_key="team.id")
team: Team | None = Relationship(back_populates="heroes")

# team.py (works)
class Team(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
.....

heroes: list["Hero"] = Relationship(back_populates="team")

# todo.py (does not work)
class Todo(SQLModel, table=True):

id: UUID | None = Field(
default=uuid4(),
primary_key=True,
)

......

category_id: UUID | None = Field(default=None, foreign_key="category.id")
category: Category | None = Relationship(back_populates="todos")

# category.py (does not work => ValueError: )
class Category(SQLModel, table=True):
id: UUID | None = Field(default=uuid4(), primary_key=True)
.....

todos: list["Todo"] = Relationship(back_populates="category")

Полный журнал ошибок:
import todo.models.category
File ".../todo/models/category.py", line 9, in
class Category(SQLModel, table=True):
File ".../lib/python3.12/site-packages/sqlmodel/main.py", line 559, in __new__
col = get_column_from_field(v)
^^^^^^^^^^^^^^^^^^^^^^^^
File "../lib/python3.12/site-packages/sqlmodel/main.py", line 708, in get_column_from_field
sa_type = get_sqlalchemy_type(field)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "../lib/python3.12/site-packages/sqlmodel/main.py", line 697, in get_sqlalchemy_type
raise ValueError(f"{type_} has no matching SQLAlchemy type")
ValueError: has no matching SQLAlchemy type


Подробнее здесь: https://stackoverflow.com/questions/792 ... chemy-type
Ответить

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

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

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

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

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