Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.1K
Visualizações
El campo de fecha y hora de SqlModel arroja un error al ejecutarse

estoy usando SQLModel en python 3.8

Cuando agrego mi campo de fecha y hora created_at: datetime = Field(default_factory=utcnow(), nullable=False)

me sale este error

 File "./app/main.py", line 16, in <module> class Post(SQLModel, table=True): File "/Users/markwardell/PycharmProjects/pythonProject/venv/lib/python3.8/site-packages/sqlmodel/main.py", line 277, in __new__ new_cls = super().__new__(cls, name, bases, dict_used, **config_kwargs) File "pydantic/main.py", line 204, in pydantic.main.ModelMetaclass.__new__ File "pydantic/fields.py", line 488, in pydantic.fields.ModelField.infer File "pydantic/fields.py", line 419, in pydantic.fields.ModelField.__init__ File "pydantic/fields.py", line 539, in pydantic.fields.ModelField.prepare File "pydantic/fields.py", line 801, in pydantic.fields.ModelField.populate_validators File "pydantic/validators.py", line 718, in find_validators RuntimeError: error checking inheritance of <module 'datetime' from '/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/lib/python3.8/datetime.py'> (type: module)

Si no agrego el created_at , la tabla se crea en PostgresSql como se esperaba. Código

 import datetime from typing import Optional import utcnow as utcnow from fastapi import FastAPI from sqlalchemy import TIMESTAMP, text from sqlmodel import Field, Session, SQLModel, create_engine, select from app.database import SQLALCHEMY_DATABASE_URL class Hero(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True) name: str = Field(index=True) secret_name: str age: Optional[int] = Field(default=None, index=True) class Post(SQLModel, table=True): id: Optional[int] = Field(default=None, primary_key=True, nullable=False) title: str = Field(nullable=False) content: str = Field(nullable=False) published: bool = Field(default=True, nullable=False) created_at: datetime = Field(default_factory=utcnow(), nullable=False) engine = create_engine(SQLALCHEMY_DATABASE_URL) def create_db_and_tables(): SQLModel.metadata.create_all(engine) app = FastAPI() @app.on_event("startup") def on_startup(): create_db_and_tables()
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Esto se explicó en un comentario, pero solo para agregarlo como respuesta para otros:

Debe importar fecha y hora como esta

 from datetime import datetime

La fecha y datetime que requerimos en este contexto es en realidad una clase dentro de un módulo que también se llama fecha y datetime .

over 4 years ago · Santiago Trujillo Relatório

0

Además, tenga en cuenta que su código debe ser

 created_at: datetime.datetime = Field(default_factory=datetime.utcnow, nullable=False)

sin llamar a utcnow en la creación de instancias, al hacerlo se le dará a cada entrada la fecha y hora consultadas en la creación de instancias. Por lo tanto, default_factory debería ser la función, no el valor.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda