{% set pkField = pkColumn.python_field %} {% set pk_field = pkColumn.python_field | camel_to_snake %} {% set pk_field_comment = pkColumn.comment %} from datetime import datetime from pydantic import BaseModel, ConfigDict, Field from pydantic.alias_generators import to_camel from pydantic_validation_decorator import NotBlank from typing import Literal, Optional from module_admin.annotation.pydantic_annotation import as_query class {{ BusinessName }}Model(BaseModel): """ {{ functionName }}表对应pydantic模型 """ model_config = ConfigDict(alias_generator=to_camel, from_attributes=True) {% for column in columns %} {{ column.column_name }}: Optional[{{ column.python_type }}] = Field(default=None, description='{{ column.column_comment }}') {% endfor %} {% for column in columns %} {% if column.required %} {% set parentheseIndex = column.column_comment.find("(") %} {% set comment = column.column_comment[:parentheseIndex] if parentheseIndex != -1 else column.column_comment %} @NotBlank(field_name='{{ column.column_name }}', message='{{ comment }}不能为空') def get_{{ column.column_name }}(self): return self.{{ column.column_name }} {% endif %} {% endfor %} def validate_fields(self): {% set vo_field_required = namespace(has_required=False) %} {% for column in columns %} {% if column.required %} self.get_{{ column.column_name }}() {% set vo_field_required.has_required = True %} {% endif %} {% endfor %} {% if not vo_field_required.has_required %} pass {% endif %} class {{ BusinessName }}QueryModel({{ BusinessName }}Model): """ {{ functionName }}不分页查询模型 """ begin_time: Optional[str] = Field(default=None, description='开始时间') end_time: Optional[str] = Field(default=None, description='结束时间') @as_query class {{ BusinessName }}PageQueryModel({{ BusinessName }}QueryModel): """ {{ functionName }}分页查询模型 """ page_num: int = Field(default=1, description='当前页码') page_size: int = Field(default=10, description='每页记录数') class Delete{{ BusinessName }}Model(BaseModel): """ 删除{{ functionName }}模型 """ model_config = ConfigDict(alias_generator=to_camel) {{ pk_field }}s: str = Field(description='需要删除的{{ pk_field_comment }}')