# 数据库迁移说明 ## 新增字段和模型 本次更新为图书管理系统添加了以下功能: ### 1. CrudBookModel 新增字段 - `file`: 电子书文件字段(FileField) - `file_type`: 文件类型字段(CharField),用于标识文件格式(epub, pdf, mobi等) ### 2. 新增 ReadingProgress 模型 用于记录用户的阅读进度,包含以下字段: - `user`: 用户外键 - `book`: 图书外键 - `location`: 阅读位置(EPUB CFI 或其他位置标识) - `progress`: 阅读进度百分比(0-100) ## 执行迁移 在后端项目目录下执行以下命令: ```bash # 生成迁移文件 python manage.py makemigrations crud_book # 执行迁移 python manage.py migrate crud_book ``` ## 新增API接口 ### 1. 获取图书文件 ``` GET /api/CrudBookModelViewSet/{id}/file/ ``` 返回图书的电子文件URL和文件类型 ### 2. 保存阅读进度 ``` POST /api/reading-progress/ { "book_id": 1, "location": "epubcfi(...)", "progress": 45.5 } ``` ### 3. 获取阅读进度 ``` GET /api/reading-progress/{book_id}/ ``` 返回指定图书的阅读进度 ## 注意事项 1. 确保在 Django settings.py 中配置了 MEDIA_ROOT 和 MEDIA_URL 2. 需要配置静态文件服务以访问上传的电子书文件 3. 阅读进度按用户和图书唯一,同一用户同一本书只有一条进度记录