Files
FastapiAdmin/backend/templates/python/model.py.j2
T
zhangtao 1dc8e4f3e2 refactor(gencode): 重构代码生成模块,优化模板和查询逻辑
重构代码生成模块的模板文件,统一命名规范为下划线风格
优化GenTableQueryParam查询参数类,移除不必要的字段
修复SQLite数据库支持问题,改进表结构查询逻辑
添加数据验证处理,防止空值导致的异常
改进批量生成代码时的错误处理和参数校验
2025-10-04 23:38:42 +08:00

43 lines
1.7 KiB
Django/Jinja

# -*- coding: utf-8 -*-
from datetime import datetime
from typing import Optional
from sqlalchemy import String, Integer, Text, DateTime
from sqlalchemy.orm import Mapped, mapped_column
from app.core.base_model import CreatorMixin
class {{ table_name|snake_to_pascal_case }}Model(CreatorMixin):
"""
{{ function_name }}
"""
__tablename__ = '{{ table_name }}'
__table_args__ = {'comment': '{{ function_name }}'}
{% for column in columns %}
{{ column.column_name }}: Mapped[Optional[{{ column.python_type }}]] = mapped_column({{ column.column_type|get_sqlalchemy_type }}, nullable=True, comment='{{ column.column_comment }}')
{% endfor %}
def __repr__(self):
return f"<{{ table_name|snake_to_pascal_case }}Model(id={self.id})>"
{% if sub_table %}
class {{ sub_class_name }}(Base):
"""
{{ sub_table.function_name }}
"""
__tablename__ = '{{ sub_table_name }}'
__table_args__ = {'comment': '{{ sub_table.function_name }}'}
{% for column in sub_table.columns %}
{{ column.column_name }}: Mapped[Optional[{{ column.python_type }}]] = mapped_column({{ column.column_type | get_sqlalchemy_type }}, {% if column.column_name == sub_table_fk_name %}ForeignKey('{{ table_name }}.id'), {% endif %}{% if column.pk %}primary_key=True, {% endif %}nullable=True, comment='{{ column.column_comment }}')
{% endfor %}
{{ table_name }} = relationship('{{ table_name|snake_to_pascal_case }}Model', back_populates='{{ sub_table.table_name }}_list')
{{ table_name|snake_to_pascal_case }}Model.{{ sub_table.table_name }}_list = relationship('{{ sub_class_name }}', back_populates='{{ table_name }}')
{% endif %}