''' 1. 参数说明: field_name:业务编号字段名,例如 student_no prefix:业务编号前缀,例如 STU db_object:已实例化的 ORM 对象,例如 stu db:当前接口中的数据库 Session 2. ORM 主键统一命名为 id。 业务编号字段按文档命名,例如 student_no、teacher_no、class_no。 3. 必须先执行 db.add(db_object),再调用 generate_no()。 4. 主键id一定要设置成自增。 dao模块示例代码: def add_student( result: CreateStudent, db: Session ): stu = Student(**result.model_dump()) db.add(stu) generate_no("student_no", "STU", stu, db) db.commit() return stu ''' def generate_no(field_name: str, prefix: str, db_object, db): if getattr(db_object, field_name): return db.flush() record_no = f"{prefix}{db_object.id:04d}" setattr(db_object, field_name, record_no)