Skip to content

表单管理

FormAdmin实现在菜单列表显示一个菜单.点击菜单后将展现一个amis表单页面.

示例

from fastapi_amis_admin.admin import admin
from fastapi_amis_admin.crud import BaseApiOut
from fastapi_amis_admin.models.fields import Field
from pydantic import BaseModel
from starlette.requests import Request


@site.register_admin
class UserLoginFormAdmin(admin.FormAdmin):
    page_schema = 'UserLoginForm'
    # 配置表单信息, 可省略
    form = Form(title='这是一个测试登录表单', submitText='登录')

    # 创建表单数据模型
    class schema(BaseModel):
        username: str = Field(..., title='用户名', min_length=3, max_length=30)
        password: str = Field(..., title='密码')

    # 处理表单提交数据
    async def handle(self, request: Request, data: BaseModel, **kwargs) -> BaseApiOut[Any]:
        if data.username == 'amisadmin' and data.password == 'amisadmin':
            return BaseApiOut(msg='登录成功!', data={'token': 'xxxxxx'})
        return BaseApiOut(status=-1, msg='用户名或密码错误!')

这里展示的仅仅是一个最简单基础的功能.

表单对象

类字段form可以配置表单的基本信息,例如: 标题,表单样式,提交按钮,提交API,信息提示等等.请参考: Form 表单

表单数据模型

类字段schema定义表单数据模型,它继承自 pydantic BaseModel, 支持各种类型字段, 通过amis自动在前端解析成对应的组件.通过schema 可以完成的功能有:

  • 定义字段基本属性. 例如: 名称,标签,数据类型,基本限制
  • 自定义字段处理或验证器. 参考: Validators - pydantic

  • 自定义amis组件.可通过amis_form_item自定义amis组件

处理函数

类方法handle接收用户提交的表单数据,在这里你可以进行各种复杂的表单数据逻辑处理.

更多用法

实际上FormAdmin拥有更多复杂的使用,这里无法展开详细说明,请参考以下相关资料.

相关文档