mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-22 13:05:18 +00:00
重构代码生成模块的模板文件,统一命名规范为下划线风格 优化GenTableQueryParam查询参数类,移除不必要的字段 修复SQLite数据库支持问题,改进表结构查询逻辑 添加数据验证处理,防止空值导致的异常 改进批量生成代码时的错误处理和参数校验
43 lines
1.7 KiB
Django/Jinja
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 %} |