discard adjustable models' id prefix & payload length

This commit is contained in:
2026-05-19 01:54:06 +08:00
parent 86b030930c
commit b58f74d59b
6 changed files with 21 additions and 45 deletions
+8 -6
View File
@@ -56,22 +56,24 @@ class AutoID:
不再需要手动定义任何 prefix,全自动根据 __tablename__ 编码生成
支持子类自定义长度
"""
# 默认配置
_id_prefix_len = 3 # 前缀长度
_id_payload_len = 22 # 主体长度
# 全局固定配置
ID_PREFIX_LEN = 3
ID_PAYLOAD_LEN = 22
@classmethod
def id_length(cls) -> int:
"""返回当前类 ID 的总长度"""
return cls._id_prefix_len + cls._id_payload_len
return cls.ID_PREFIX_LEN + cls.ID_PAYLOAD_LEN
@declared_attr
def id(cls):
# 运行时动态获取子类的 __tablename__
tablename = cls.__tablename__
# 获取子类配置的长度
p_len = cls._id_prefix_len
s_len = cls._id_payload_len
p_len = AutoID.ID_PREFIX_LEN
s_len = AutoID.ID_PAYLOAD_LEN
prefix = encode_tablename_to_prefix(tablename, length=p_len)
# 核心工厂函数:拼接【编码后的表前缀】和【递增Payload】