94 lines
2.4 KiB
Python
94 lines
2.4 KiB
Python
# _*_ coding : UTF-8 _*_
|
||
# @Time : 2025/01/19 00:46
|
||
# @UpdateTime : 2025/01/19 00:46
|
||
# @Author : sonder
|
||
# @File : file.py
|
||
# @Software : PyCharm
|
||
# @Comment : 本程序
|
||
from tortoise import fields
|
||
|
||
from models.common import BaseModel
|
||
|
||
|
||
class File(BaseModel):
|
||
"""
|
||
文件表模型。
|
||
"""
|
||
|
||
name = fields.CharField(
|
||
max_length=255,
|
||
description="文件名",
|
||
source_field="name" # 映射到数据库字段 name
|
||
)
|
||
"""
|
||
文件名。
|
||
- 包括文件扩展名。
|
||
- 最大长度为 255 个字符。
|
||
- 映射到数据库字段 name。
|
||
"""
|
||
|
||
size = fields.BigIntField(
|
||
description="文件大小(字节)",
|
||
source_field="size" # 映射到数据库字段 size
|
||
)
|
||
"""
|
||
文件大小。
|
||
- 单位:字节。
|
||
- 映射到数据库字段 size。
|
||
"""
|
||
|
||
file_type = fields.CharField(
|
||
max_length=100,
|
||
description="文件类型",
|
||
source_field="file_type" # 映射到数据库字段 file_type
|
||
)
|
||
"""
|
||
文件类型。
|
||
- 例如:image/png、application/pdf。
|
||
- 最大长度为 100 个字符。
|
||
- 映射到数据库字段 file_type。
|
||
"""
|
||
|
||
absolute_path = fields.CharField(
|
||
max_length=512,
|
||
description="绝对路径",
|
||
source_field="absolute_path" # 映射到数据库字段 absolute_path
|
||
)
|
||
"""
|
||
绝对路径。
|
||
- 文件在服务器上的绝对路径。
|
||
- 最大长度为 512 个字符。
|
||
- 映射到数据库字段 absolute_path。
|
||
"""
|
||
|
||
relative_path = fields.CharField(
|
||
max_length=512,
|
||
description="相对路径",
|
||
source_field="relative_path" # 映射到数据库字段 relative_path
|
||
)
|
||
"""
|
||
相对路径。
|
||
- 文件相对于某个根目录的相对路径。
|
||
- 最大长度为 512 个字符。
|
||
- 映射到数据库字段 relative_path。
|
||
"""
|
||
|
||
uploader = fields.ForeignKeyField(
|
||
"models.User",
|
||
related_name="uploaded_files",
|
||
null=True, # 允许为空
|
||
description="上传人员",
|
||
source_field="uploader_id" # 映射到数据库字段 uploader_id
|
||
)
|
||
"""
|
||
上传人员。
|
||
- 外键关联到 User 表。
|
||
- 允许为空(例如系统自动上传的文件)。
|
||
- 映射到数据库字段 uploader_id。
|
||
"""
|
||
|
||
class Meta:
|
||
table = "file" # 数据库表名
|
||
table_description = "文件表" # 表描述
|
||
ordering = ["-create_time"] # 默认按创建时间倒序排序
|