Python 当我试图在实际模型中使用FastAPI文档时,我得到了一个错误

Python 当我试图在实际模型中使用FastAPI文档时,我得到了一个错误,python,fastapi,Python,Fastapi,我正在基于创建一个身份验证函数,但是当我尝试使用真实模型的get_用户部分时,它失败了 如果按原样编写,它可以正常工作,但是如果使用实际的UserModel,则会出现以下错误 如文件所示的书写示例 def get_user(db, username: str): if username in db: user_dict = db[username] return UserInDB(**user_dict) -----------------------

我正在基于创建一个身份验证函数,但是当我尝试使用真实模型的get_用户部分时,它失败了

如果按原样编写,它可以正常工作,但是如果使用实际的UserModel,则会出现以下错误

如文件所示的书写示例

def get_user(db, username: str):
    if username in db:
        user_dict = db[username]
        return UserInDB(**user_dict)


------------------------------------
user = get_user(fake_users_db, username=token_data.username)
使用自定义用户模型编写的示例

def get_user(db, username: str):
    if username in db:
        user_dict = db[username]
        return UserInDB(**user_dict)


------------------------------------
user = get_user(User, username=token_data.username)
打字错误

Error in get_user
    if username in db:
TypeError: argument of type 'DeclarativeMeta' is not iterable
打印(假用户\u数据库)
打印(用户)
--------------------------------------------------
{'johndoe':{'username':'johndoe','full_name':'johndoe','email':'johndoe@example.com“,”散列密码“:“$2b$12$Eixzayvk1fsbw1zfbxx3oxepawxn96p36wqoeg6lruj3vjpgga31lw”,“已禁用”:1}”
这就是我在打印中实际显示它时的样子。 我认为这是因为原始的UserModel没有显示详细的内容,但是我如何改进它呢


如果您能告诉我更多信息,我将不胜感激。

我想这是因为您正在传递“user=get\u user(user,username=token\u data.username)”。用户作为参数传递,而不是db,或者?
print(fake_users_db)
print(User)
--------------------------------------------------
{'johndoe': {'username': 'johndoe', 'full_name': 'John Doe', 'email': 'johndoe@example.com', 'hashed_password': '$2b$12$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36WQoeG6Lruj3vjPGga31lW', 'disabled': 1}}
<class 'user.models.User'>