# category.py
from __future__ import annotations
from sqlmodel import Field, SQLModel, Relationship
from .defaults import UUIDModel, TimestampModel
from typing import TYPE_CHECKING, Optional, List
if TYPE_CHECKING:
from app.api.database.models.item import Item, ItemPublicGeneric
from app.api.database.models.blog import Blog, BlogPublicGeneric
class CategoryBase(SQLModel):
name: str
class Category(TimestampModel, CategoryBase, UUIDModel, table=True):
items: list["Item"] = Relationship(
back_populates="category",
sa_relationship_kwargs={"lazy": "joined"},
)
blogs: list["Blog"] = Relationship(
back_populates="category",
sa_relationship_kwargs={"lazy": "joined"},
)
class CategoryCreate(CategoryBase):
pass
class CategoryPublic(TimestampModel, CategoryBase, UUIDModel):
items: list["ItemPublicGeneric"] = []
blogs: list["BlogPublicGeneric"] = []
class CategoryPublicGeneric(TimestampModel, CategoryBase, UUIDModel):
pass
class CategoryUpdate(CategoryBase):
pass
In der Kategorie.py in dieser Zeile blogs: list["BlogPublicGeneric"] = [] erhalte ich diese Fehlermeldung. PydanticUndefinedAnnotation: Name „BlogPublicGeneric“ ist nicht definiert. Der interessantere Teil ist, dass es ohne Fehler funktioniert, wenn ich einfach „BlogPublic“ anstelle von „BlogPublicGeneric“ importiere und verwende. Aber wie Sie in blog.py sehen können, ist „BlogPublicGeneric“ eigentlich ein einfacheres Modell. Ich verstehe nicht, warum dies einen Fehler verursacht. Wir freuen uns über jede Hilfe.
Ich habe es mit verschiedenen Klassen ausprobiert. Ich habe versucht, TYPE_CHECKING loszuwerden, aber das ist derzeit aufgrund eines zirkulären Importproblems nicht möglich.
Ich verwende SQLModel für ein Projekt. Aber ich bin auf ein Problem mit Typanmerkungen gestoßen. [code]# blog.py from __future__ import annotations from sqlmodel import Field, SQLModel, Relationship from .defaults import UUIDModel, TimestampModel from app.api.database.models.blogItem import BlogItem from app.api.database.models.image import Image, ImagePublic from app.api.database.models.blogImage import BlogImage from app.api.database.models.section import Section, SectionPublic from app.api.database.models.tag import Tag, TagPublic from app.api.database.models.blogTag import BlogTag from app.api.database.models.metaTag import MetaTag, MetaTagPublic from app.api.database.models.blogMetaTag import BlogMetaTag from app.api.database.models.item import Item, ItemPublic from app.api.database.models.category import Category, CategoryPublic
from uuid import UUID
class BlogBase(SQLModel): title: str = Field(index=True) author: str = Field(index=True) description: str read_time: int
class BlogPublicGeneric(TimestampModel, BlogBase, UUIDModel): pass
class BlogUpdate(BlogCreate): pass
[/code] [code]# category.py from __future__ import annotations from sqlmodel import Field, SQLModel, Relationship from .defaults import UUIDModel, TimestampModel from typing import TYPE_CHECKING, Optional, List
if TYPE_CHECKING: from app.api.database.models.item import Item, ItemPublicGeneric from app.api.database.models.blog import Blog, BlogPublicGeneric
class CategoryPublicGeneric(TimestampModel, CategoryBase, UUIDModel): pass
class CategoryUpdate(CategoryBase): pass
[/code] In der Kategorie.py in dieser Zeile blogs: list["BlogPublicGeneric"] = [] erhalte ich diese Fehlermeldung. PydanticUndefinedAnnotation: Name „BlogPublicGeneric“ ist nicht definiert. Der interessantere Teil ist, dass es ohne Fehler funktioniert, wenn ich einfach „BlogPublic“ anstelle von „BlogPublicGeneric“ importiere und verwende. Aber wie Sie in blog.py sehen können, ist „BlogPublicGeneric“ eigentlich ein einfacheres Modell. Ich verstehe nicht, warum dies einen Fehler verursacht. Wir freuen uns über jede Hilfe. Ich habe es mit verschiedenen Klassen ausprobiert. Ich habe versucht, TYPE_CHECKING loszuwerden, aber das ist derzeit aufgrund eines zirkulären Importproblems nicht möglich.
Entschuldigung, wenn diese Frage an anderer Stelle beantwortet wurde: Ich hatte kein Glück bei der Suche. Ich bin auch ein SQL-Neuling, daher hoffe ich, dass die Antwort auf meine Frage nicht zu...
Angesichts dieser Klassen und 1-zu-N-Beziehungen erhalte ich Kompilierungszeitfehler: ValueError: hat keinen passenden SQLAlchemy-Typ auf die Kategorie.py Feld Todos: List , während der Beziehung...
Ich benutze Google OAuth, um meine Benutzer zu authentifizieren. Es verwendet remoteAuthenticationHandler , die den HandleremoteAuthenticateasync definiert, der bei Callback -Endpunkt aufgerufen...