mongodb 从Beanie ODM文档中排除“无”字段

luaexgnf  于 2023-01-30  发布在  Go
关注(0)|答案(1)|浏览(267)

我试图插入一个来自BeanieODM的文档,但没有字段“无”值,但我找不到方法

@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,如果他们没有一个值。应该有一些方法使豆豆ODM文件的字段可选的权利?

相关问题