mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-23 05:10:57 +00:00
fix: 调整前端组件样式和修复后端调度器问题
修复操作列按钮宽度计算问题,调整日志详情页标签宽度 优化任务状态选项标签,从"暂停"改为"停用" 移除后端调度器无用导入,添加job_id到日志记录 添加job_id查询参数到任务日志接口 优化前端应用列表页搜索表单和分页样式 修复Pydantic错误消息处理,去除冗余前缀 添加应用模型的前置处理和验证逻辑
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from typing import Optional
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
from pydantic import BaseModel, ConfigDict, Field, field_validator, model_validator
|
||||
|
||||
from app.core.base_schema import BaseSchema
|
||||
|
||||
@@ -14,6 +14,28 @@ class ApplicationCreateSchema(BaseModel):
|
||||
status: bool = Field(True, description="是否启用(True:启用 False:禁用)")
|
||||
description: Optional[str] = Field(default=None, max_length=255, description="描述")
|
||||
|
||||
@model_validator(mode="before")
|
||||
@classmethod
|
||||
def _normalize(cls, data):
|
||||
"""模型级前置处理:去除首尾空格,空字符串转为 None(可选字段)。"""
|
||||
if isinstance(data, dict):
|
||||
for key in ("name", "access_url", "icon_url", "description"):
|
||||
val = data.get(key)
|
||||
if isinstance(val, str):
|
||||
val = val.strip()
|
||||
# 将可选字段的空字符串转换为 None
|
||||
if key in ("icon_url", "description") and val == "":
|
||||
val = None
|
||||
data[key] = val
|
||||
return data
|
||||
|
||||
@field_validator('name')
|
||||
@classmethod
|
||||
def _validate_name_length(cls, v: str) -> str:
|
||||
if len(v) > 64:
|
||||
raise ValueError('应用名称长度不能超过64字符')
|
||||
return v
|
||||
|
||||
|
||||
class ApplicationUpdateSchema(ApplicationCreateSchema):
|
||||
"""应用更新模型"""
|
||||
|
||||
Reference in New Issue
Block a user