날짜 시간에 대한 ValidationError (ValidationError for datetime)


문제 설명

날짜 시간에 대한 ValidationError (ValidationError for datetime)

안녕하세요, 긴 글 읽어주셔서 감사합니다. FastAPI‑SQLAlchemy‑PostgresSQL을 배우고 있습니다. 튜토리얼을 따라 데모 프로젝트를 코딩하고 있습니다. 내 데이터베이스는 다음과 같이 생성됩니다.

CREATE TABLE posts (
    id SERIAL PRIMARY KEY,
    title text,
    content text,
    owner_id integer REFERENCES users(id),
    date_created timestamp without time zone,
    date_last_updated timestamp without time zone
);

‑‑ Indices ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑

CREATE UNIQUE INDEX posts_pkey ON posts(id int4_ops);

내 SQLAlchemy 모델은 다음과 같습니다.

class Post(Base):
    __tablename__ = 'posts'

    id = Column(Integer, primary_key=True, index=True)
    title = Column(String, index=True)
    content = Column(String, index=True)
    owner_id = Column(Integer, ForeignKey('users.id'))
    date_created = Column(DateTime, default=dt.datetime.now)
    date_last_updated = Column(DateTime, default=dt.datetime.now)

    owner = relationship("User", back_populates="posts")

Pydantic 스키마는 다음과 같습니다.

6
class PostBase(BaseModel):
    title: str
    content: str


class PostCreate(PostBase):
    pass


class Post(PostBase):
    id: int
    owner_id: int
    date_create: dt.datetime
    date_last_updated: dt.datetime

    class Config:
        orm_mode = True

마지막으로 다음과 함께 게시:

def create_post(db: Session, post: schemas.PostCreate, user_id: int):
    post = models.Post(**post.dict(), owner_id=user_id)
    db.add(post)
    db.commit()
    db.refresh(post)
    return post

@app.post("/users/{user_id}/posts", response_model=schemas.Post)
def create_post(user_id: int, post: schemas.PostCreate, db: Session = Depends(get_db)):
    user = crud.get_user(user_id=user_id, db=db)
    if user is None:
        raise HTTPException(status_code=404, detail="User not found")
    return create_post(db=db, post=post, user_id=user_id)

게시물이 데이터베이스에서 올바르게 생성되었음을 알 수 있습니다. | 아이디 | title|content|owner_id|date_created |date_last_updated | | ‑‑ | ‑‑‑‑‑|‑‑‑‑‑‑‑|‑‑‑‑‑‑‑‑|‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑| ‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑‑| | 3 | 안녕 |hi |3 |2021‑10‑08 03:00:43.731416|2021‑10‑08 03:00:43.73143|

하지만 콘솔은 다음 오류를 출력하고 API에서 JSON이 반환되지 않습니다.


참조 솔루션

방법 1:

pydantic.error_wrappers.ValidationError: 1 validation error for Post
response ‑> date_create
  field required (type=value_error.missing)

Here is your error, you aren't filling one field, and is required for the form.

Check if date_created is required in your form.

(by JoeZHHFalkZerd)

참조 문서

  1. ValidationError for datetime (CC BY‑SA 2.5/3.0/4.0)

#SQLAlchemy #Python #postgresql #pydantic #fastapi






관련 질문

타임스탬프 열에서 연도만 검색하는 방법은 무엇입니까? (How to retrieve only the year from timestamp column?)

SQLAlchemy: 'in_'에 대한 필터는 효과가 없습니다. (SQLAlchemy: Filter on 'in_' has no effect)

sqlalchemy 쿼리 필터에 변수를 추가하고 문자열 쿼리로 변환하려면 어떻게 합니까? (How do I add a variable to a sqlalchemy query filter and convert it to a string query?)

자동 플러시를 비활성화하고 자동 커밋이 작동하지 않는 후 Flask sqlAlchemy (Flask sqlAlchemy after disable autoflush and autocommit not working)

R과 반짝이는 다층 테이블을 만드는 방법은 무엇입니까? (How to make multiple layered table form with R and shiny?)

sqlalchemy.exc.OperationalError 식별 (Identifying sqlalchemy.exc.OperationalError)

ImportError: 'PY2' 이름을 가져올 수 없습니다. (ImportError: cannot import name 'PY2')

SQLAlchemy: 부분적으로 지정된 관계 (SQLAlchemy: partially specified relationship)

SQLAlchemy를 사용하여 데이터베이스의 기존 테이블에 연결 (Connect to existing tables in database using SQLAlchemy)

sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL 제약 조건 실패: user.words (sqlalchemy.exc.IntegrityError: (sqlite3.IntegrityError) NOT NULL constraint failed: user.words)

날짜 시간에 대한 ValidationError (ValidationError for datetime)

pytest에서 SAWarning을 무시하는 방법 (How to ignore SAWarning in pytest)







코멘트