第2章 模型设计与数据迁移 章节摘要:模型层是 Django 项目的地基。本章把墨迹博客的业务实体翻译成模型:选对字段类型、设计外键关系、用 Meta 表达约束与排序,然后交给迁移系统安全地生成和演进数据库表结构。建模期的每个决定都会陪伴项目整个生命周期。 学习目标 根据业务需求选择字段类型并写出模型类 设计一对多、多对多关系并理解 relatedname 的作用 用 Meta 类声明排序、约束与表名 熟练运用迁移命令完成表结构的增量演进 核心概念速览 模型是业务事实的唯一陈述,其余一切都是它的视图。 项目当前状态 骨架已就位。本章结束时,墨迹博客拥有作者、文章、分类、评论四组模型,数据库里有了对应的表,第 3 章可以开始查询。 为什么建模值得单独成章、且放在功能开发之前?
章节摘要:模型层是 Django 项目的地基。本章把墨迹博客的业务实体翻译成模型:选对字段类型、设计外键关系、用 Meta 表达约束与排序,然后交给迁移系统安全地生成和演进数据库表结构。建模期的每个决定都会陪伴项目整个生命周期。
模型是业务事实的唯一陈述,其余一切都是它的视图。
骨架已就位。本章结束时,墨迹博客拥有作者、文章、分类、评论四组模型,数据库里有了对应的表,第 3 章可以开始查询。
为什么建模值得单独成章、且放在功能开发之前?因为模型层是整个项目里返工成本最高的部分。视图写错了改几行代码就能重跑,模板错了刷新页面即可,但表结构一旦带着数据上线,每一次修改都要经过迁移、审查、回滚预案三道工序,改错一次可能就是一次线上事故。本章的写作顺序也体现这层谨慎:先把业务实体在纸面上推演清楚,再落成模型类,最后才让迁移系统碰数据库。宁可在设计稿上多改十遍,不在生产库里改一遍。
字段类型怎么选、常用参数的含义、Meta 类如何表达"表级"的规则。
外键、多对多、一对一的适用场景,级联策略与反向查询命名。
迁移系统的工作原理、常用命令流、以及改生产表结构时的安全操作顺序。
字段与Meta(2.1)──组合──> 关系设计(2.2) │ │ └──────┬───────────────┘ v 迁移系统落库(2.3)──> 第3章 查询这些模型