PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

SQLAlchemy mit Datenklassenstandard füllt die Postgres-Datenbank nicht

Seit '' und 0 sind jeweils voreingestellte Rückgabewerte von str() und int() Funktionen, könnten Sie den folgenden Code verwenden, um diese Standardwerte einzufügen:

@dataclass
class Person:
    id: int = None
    name: str = field(default_factory=str)
    age: int = field(default_factory=int)
    hobbies: List[str] = field(default_factory=list)
    birthday: datetime = field(default_factory=datetime)

Leider wird aus irgendeinem Grund default verwendet Parameter von field() funktioniert nicht wie erwartet (könnte ein Fehler der dataclasses sein Backport oder ein Missverständnis...). Aber Sie können immer noch die default_factory verwenden um Werte anzugeben, die sich von '' unterscheiden und 0 mit lambda :

@dataclass
class Person:
    id: int = None
    name: str = field(default_factory=lambda: 'john doe')
    age: int = field(default_factory=lambda: 77)
    hobbies: List[str] = field(default_factory=list)
    birthday: datetime = field(default_factory=datetime)