mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-21 04:46:26 +00:00
1. 删除无用文件与废弃代码:移除locale枚举、element-plus插件、sse路由、api token模块等 2. 简化类型导入与依赖:移除大量未使用的类型导入,统一echarts导入方式 3. 优化配置与样式:调整gitignore、样式引入顺序,新增列表动画样式 4. 修复接口与模型:修正接口返回类型、查询参数配置,更新部门模型字段 5. 优化性能与体验:添加图片懒加载,优化加载逻辑与表格渲染 6. 调整环境配置:新增并更新开发/生产环境配置文件
45 lines
2.7 KiB
Django/Jinja
45 lines
2.7 KiB
Django/Jinja
# -*- coding: utf-8 -*-
|
|
|
|
{% for model_import in model_import_list %}
|
|
{{ model_import }}
|
|
{% endfor %}
|
|
from sqlalchemy.orm import Mapped, mapped_column
|
|
|
|
from app.core.base_model import ModelMixin, TenantMixin, UserMixin
|
|
{% if table.sub and not is_sub_entity %}
|
|
from ..{{ sub_module_name }}.model import {{ sub_model_class_name }}
|
|
{% endif %}
|
|
|
|
|
|
class {{ class_name }}Model(ModelMixin, TenantMixin, UserMixin):
|
|
"""
|
|
{{ function_name }}表
|
|
"""
|
|
__tablename__: str = '{{ table_name }}'
|
|
__table_args__: dict[str, str] = {'comment': '{{ function_name }}'}
|
|
{% if not is_sub_entity %}
|
|
{% for column in columns %}
|
|
{% if column.column_name not in ['id', 'uuid', 'tenant_id', 'created_time', 'updated_time', 'created_id', 'updated_id', 'is_deleted', 'deleted_time', 'deleted_id'] %}
|
|
{% set sqlalchemy_type = column|get_sqlalchemy_type %}
|
|
{{ column.column_name }}: Mapped[{{ column.python_type }} | None] = mapped_column({{ sqlalchemy_type }}, {% if column.is_pk %}primary_key=True, {% endif %}{% if column.is_increment %}autoincrement=True, {% endif %}{% if (not column.is_nullable) or column.is_pk %}nullable=False{% else %}nullable=True{% endif %}, comment='{{ column.column_comment }}')
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
{% if table.sub %}
|
|
{{ sub_rel_list_name }} = relationship('{{ sub_model_class_name }}', back_populates='{{ parent_rel_name }}')
|
|
{% endif %}
|
|
{% else %}
|
|
{% for column in columns %}
|
|
{% if column.column_name not in ['id', 'uuid', 'tenant_id', 'created_time', 'updated_time', 'created_id', 'updated_id', 'is_deleted', 'deleted_time', 'deleted_id'] %}
|
|
{% set sqlalchemy_type = column|get_sqlalchemy_type %}
|
|
{% if column.column_name == sub_table_fk_name %}
|
|
{{ column.column_name }}: Mapped[{{ column.python_type }} | None] = mapped_column({{ sqlalchemy_type }}, ForeignKey('{{ parent_table_name }}.{{ parent_pk_column_name }}', ondelete='CASCADE'), {% if column.is_pk %}primary_key=True, {% endif %}{% if column.is_increment %}autoincrement=True, {% endif %}{% if (not column.is_nullable) or column.is_pk %}nullable=False{% else %}nullable=True{% endif %}, comment='{{ column.column_comment }}')
|
|
{% else %}
|
|
{{ column.column_name }}: Mapped[{{ column.python_type }} | None] = mapped_column({{ sqlalchemy_type }}, {% if column.is_pk %}primary_key=True, {% endif %}{% if column.is_increment %}autoincrement=True, {% endif %}{% if (not column.is_nullable) or column.is_pk %}nullable=False{% else %}nullable=True{% endif %}, comment='{{ column.column_comment }}')
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
{{ parent_rel_name }} = relationship('{{ parent_model_class_name }}', back_populates='{{ parent_list_rel_name }}')
|
|
{% endif %}
|