python - FastApi Users Auth,无法添加额外的注册字段

标签 python api authentication fastapi tortoise-orm

我在我的项目中使用 Fastapi、Fastapi Users 和 TortoiseOrm 进行身份验证。

FastApi Users

Tortoise

我按照 FastApi 用户网站上的示例进行操作,当我尝试在注册用户时添加一些额外字段时,出现此错误:

RuntimeError: no validator found for <class 'tortoise.fields.data.CharField'>, see arbitrary_types_allowed in Config

这是我的代码,感谢您的帮助!

from tortoise import fields
from tortoise.contrib.pydantic import pydantic_model_creator
from fastapi_users import models
from fastapi_users.db import TortoiseBaseUserModel, TortoiseUserDatabase
from tortoise.contrib.starlette import register_tortoise


class User(models.BaseUser):
 nombre = fields.CharField(max_length=100)
 apellidos = fields.CharField(max_length=100)


class UserCreate(models.BaseUserCreate):
  pass

class UserUpdate(User, models.BaseUserUpdate):
  pass

class UserDB(User, models.BaseUserDB):
  pass

class UserModel(TortoiseBaseUserModel):
  pass


 user_db = TortoiseUserDatabase(UserDB, UserModel)

最佳答案

我在将 FastAPI 用户与 SQlAlchemy 一起使用时遇到了类似的错误。对我有用的是在定义它时将自定义字段(在您的情况下为 nombre 和 appelidos)添加到 4 个用户模型中的每一个和 UserModel 表中

schemas.py 文件

from fastapi_users import models

class User(models.BaseUser):
    sid: int
    fname: str
    lname: str
    
class UserCreate(models.BaseUserCreate):
    sid: int
    fname: str
    lname: str

class UserUpdate(User, models.BaseUserUpdate):
    sid: int
    fname: str
    lname: str
  
class UserDB(User, models.BaseUserDB):
    sid: int
    fname: str
    lname: str

models.py 文件

from sqlalchemy import Column, Integer, String
from fastapi_users.db import SQLAlchemyBaseUserTable
from db import Base

class UserTable(Base, SQLAlchemyBaseUserTable):
    sid = Column(Integer)
    fname = Column(String)
    lname = Column(String)

关于python - FastApi Users Auth,无法添加额外的注册字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63894605/

相关文章:

python - 喀拉斯 : Implementing a custom metric with logical operators

javascript - Mocha 要求我读取 HTTP 请求正文

java - 用于商家网站的 api,用于为我们的用户提供交易信用

laravel - 如何在中间件中使用 session 来始终检查用户是否登录

python - 通过 ntlm 的 Pycurl ssl 连接

python - 从网络计算机连接到本地 Flask 服务器

python - 可以打开/显示/呈现 headless (headless) Selenium session 吗?

facebook - 产品目录 api 失败

facebook - 在Azure Api App中获取经过身份验证的用户信息

python - 无法使用 Google BigQuery 进行身份验证