【问题标题】:exclude None fields from beanie ODM document从 beanie ODM 文档中排除无字段
【发布时间】:2023-01-26 06:41:35
【问题描述】:

我试图插入一个来自 Beanie ODM 的文档,但没有带有 None 值的字段,但我找不到执行此操作的方法

@router.post('/signup')
async def signup(
        request: Request,
        user_create: SignupSchema
):
    hashed_password = get_password_hash(user_create.password)

    user_entity = UserEntity(**user_create.dict(), hashed_password=hashed_password)

    result = await user_entity.insert()
    if not result:
        raise HTTPException(
            status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
            detail=f"Error creating user",
            headers={"WWW-Authenticate": "Bearer"}
        )

    return JSONResponse(status_code=status.HTTP_201_CREATED,
                        content={"detail": "Account created successfully"})

类似于 user_create.dict(exclude_none=True) 但使用 BeanieODM 文档 .insert(),我的 UserEntity 文档是这样的:

from typing import Optional
from beanie import Document

class UserEntity(Document):
        username: str
        email: EmailStr
        first_name: Optional[str]
        last_name: Optional[str]
        hashed_password: str

    class Settings:
        name = "users"

我不希望数据库中的字段 first_name/last_name 没有值。 应该有某种方法可以使 Beanie ODM 文档的字段成为可选字段吧?

【问题讨论】:

    标签: python mongodb fastapi pydantic tornado-motor


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-12
      • 2023-01-24
      • 1970-01-01
      • 2020-10-31
      • 1970-01-01
      • 2022-06-11
      • 2021-11-13
      • 2016-11-17
      相关资源
      最近更新 更多