这套 Django 实战课程聚焦于轻量级 SaaS 平台中的「问题管理」模块。很多学习者做过博客、电商等单体项目,但一遇到多租户、多业务线共用的场景就不知道怎么设计表结构;或者能写后端接口,却搞不定前端交互——比如弹窗、富文本、日期选择、动态下拉这些“看着简单、做起来烦”的界面功能。这门课正是从这两个薄弱点切入:先讲问题的表结构如何设计,再给出对应的 ORM 类,然后逐个攻坚前端组件,最终把“创建问题、展示问题、筛选问题”的完整闭环串起来。它不是泛泛的 Django 教程,而是让你亲手补上「业务建模 + 后台交互」这条短腿。

适合什么基础,先看哪几块

建议你已经会 Python 基础语法,能跑通一个最简单的 Django 视图和模型,知道 ORM 基本查询。如果你还不太熟悉类视图、模板继承或 Bootstrap 布局,也可以先看课程里“问题的样式处理”那一段,它会把页面结构怎么搭、样式怎么复用讲清楚。至于表结构设计和 ORM 类,建议优先看——这是整个模块的地基。很多人做 SaaS 时遇到的坑,比如“一个问题如何关联到不同的业务线”“怎么记录创建人、状态、优先级”,都需要在设计阶段想明白。看完这两节,你应该能回答:一张问题表至少要包含哪些字段,哪些字段需要外键,哪些字段适合用整型映射状态枚举,以及如何在 Django 中用 models.ForeignKey 和 IntegerField 实现这些设计。

接下来可以集中精力看“模态对话框和 markdown 编辑器”与“时间选择器”“下拉框插件”这三块。它们是本课实操密度最高的部分,也是许多工作两年的人仍会卡壳的地方:弹窗里嵌入编辑器后,数据怎么在提交前被正确读取;日期选择器绑定后,如何把值回填到表单;Bootstrap-select 搜索下拉框和普通 select 在提交时有什么差异。这些细节不亲手做一遍,上课时觉得听懂了,换到自己项目里照样报错。

学完能独立做什么,怎么练习

完成这门课之后,你应当能在自己的 Django 项目里,独立拼装出一个“带富文本编辑、日期范围筛选、可搜索下拉、复用性较好的问题录入与列表页”。这不是指把课程代码抄一遍,而是不看源码也能说清楚:前端插件初始化后对应哪些 DOM 结构,数据从浏览器经过哪个接口进入 ORM,再如何渲染回页面。建议你动手时把课程里的项目改造成自己的业务场景——比如把“问题”改成“客户工单”或“审批诉求”,然后只保留课程里最核心的表结构和 Modal 逻辑,看看你能不能独立完成这一改造。如果中途卡住,回到对应的课程小节去查,重点看“创建问题出现对话框”和“表结构对应的 ORM 类”这两段,因为它们串联起了前后端的完整链路。

练习时建议配合以下方式:第一,边看边改。不要照着敲,先把课程里每一步的最终效果写出来,再对照检查。第二,故意拆掉某个功能。比如去掉 markdown 编辑器,改成普通多行文本,感受一下表单处理流程有什么变化;或者把 Bootstrap-select 换成原生下拉框,看提交数据是否还正常。这样能帮你理解插件到底替你做了什么,而不只是“会用”。第三,自己给自己布置一个小任务:给问题列表增加一个“按负责人筛选”的功能。它不需要你新引入复杂插件,但需要你复用课程里关于查询参数传递、模板渲染和下拉框回显的知识。做完这一步,你对 SaaS 后台模块的驾驭能力才真正算是自己的。

课程目录

1-1 [sass项目_问题管理_01] 问题管理概述 (04:53)
1-2 [sass项目_问题管理_01] 问题的表结构设计 (15:52)
1-3 [sass项目_问题管理_01] 表结构对应的ORM类 (06:52)
1-4 [sass项目_问题管理_01] 问题的样式处理 (11:58)
1-5 [sass项目_问题管理_01] 创建问题出现对话框 (07:03)
1-6 [sass项目_问题管理_01] 模态对话框和markdown编辑器的处理 (21:58)
1-7 [sass项目_问题管理_01] 时间选择器datepicke (13:33)
1-8 [sass项目_问题管理_01] 下拉框插件bootsrtrap-select (17:42)
1-9 [sass项目_问题管理_01] 今日作业 (03:51)
2-1 [sass项目_问题管理_02] 今日概要 (05:02)
2-2 [sass项目_问题管理_02] 添加问题时数据初始化 (30:36)
2-3 [sass项目_问题管理_02] 创建项目默认创建问题类型 (09:26)
2-4 [sass项目_问题管理_02] 王洋的问题 (06:16)
2-5 [sass项目_问题管理_02] 添加问题 (18:55)
2-6 [sass项目_问题管理_02] 课下扩展 (03:28)
2-7 [sass项目_问题管理_02] 问题列表的基本显示 (20:21)
2-8 [sass项目_问题管理_02] 分页展示问题 (21:26)
2-9 [sass项目_问题管理_02] 编辑页面的展示 (21:16)
2-10 [sass项目_问题管理_02] 操作记录实现思路 (05:10)
2-11 [sass项目_问题管理_02] 操作记录表结构设计 (05:27)
2-12 [sass项目_问题管理_02] 操作记录展示(多级嵌套) (35:16)
2-13 [sass项目_问题管理_02] 操作记录回复用户提示 (08:58)
2-14 [sass项目_问题管理_02] 评论和回复的实现 (19:31)
2-15 [sass项目_问题管理_02] 今日作业 (06:11)
3-1 [sass项目_问题管理_03] 今日概要 (02:22)
3-2 [sass项目_问题管理_03] 反射 (15:53)
3-3 [sass项目_问题管理_03] 字符串形式获取orm字段 (14:15)
3-4 [sass项目_问题管理_03] 可迭代对象 (11:30)
3-5 [sass项目_问题管理_03] 问题更新实现基本思路 (08:24)
3-6 [sass项目_问题管理_03] 前端标签绑定change事件 (13:10)
3-7 [sass项目_问题管理_03] 后台接收到问题变更请求 (10:28)
3-8 [sass项目_问题管理_03] 问题变更-文本信息 (28:48)
3-9 [sass项目_问题管理_03] 问题变更-FK处理 (25:07)
3-10 [sass项目_问题管理_03] 问题变更-choices处理 (06:42)
3-11 [sass项目_问题管理_03] 问题变更-m2m处理 (19:57)
3-12 [sass项目_问题管理_03] 问题筛选-URL搜索 (13:28)
3-13 [sass项目_问题管理_03] 问题筛选-CheckFilter展示 (27:21)
3-14 [sass项目_问题管理_03] 问题筛选-checkbox筛选实现 (22:29)
3-15 [sass项目_问题管理_03] 问题筛选-checkbox搜索的实现 (07:41)
3-16 [sass项目_问题管理_03] 问题筛选-答疑 (04:57)
3-17 [sass项目_问题管理_03] 今日作业 (06:25)
3-18 [sass项目_问题管理_03] 答疑 (06:41)
4-1 [sass项目_问题管理_04] 今日概要 (04:52)
4-2 [sass项目_问题管理_04] 筛选-FK的CheckFilter实现 (12:58)
4-3 [sass项目_问题管理_04] 筛选-SelectFilter的展示 (31:25)
4-4 [sass项目_问题管理_04] 筛选-SelectFilter的筛选实现 (11:19)
4-5 [sass项目_问题管理_04] 筛选-SelectFilter实现关注者筛选 (02:08)
5-1 [sass项目_邀请+概览] 邀请-表结构设计 (11:58)
5-2 [sass项目_邀请+概览] 邀请-生成对话框 (08:47)
5-3 [sass项目_邀请+概览] 邀请-生成邀请链接 (30:44)
5-4 [sass项目_邀请+概览] 邀请-邀请链接的校验 (21:07)
5-5 [sass项目_邀请+概览] 概览-详细展示 (25:39)
5-6 [sass项目_邀请+概览] 概览-问题统计 (14:34)
5-7 [sass项目_邀请+概览] 概览-项目参与者 (08:28)
5-8 [sass项目_邀请+概览] 概览-动态 (09:54)
5-9 [sass项目_邀请+概览] 今日作业 (10:20)
5-10 [sass项目_邀请+概览] 今日概要 (01:32)
5-11 [sass项目_邀请+概览] django时区设置 (10:24)
5-12 [sass项目_邀请+概览] 上节bug处理 (15:36)
5-13 [sass项目_邀请+概览] highcharts的了解 (31:55)
5-14 [sass项目_邀请+概览] 新增问题趋势实现 (35:09)
5-15 [sass项目_邀请+概览] 关于中文包的问题 (06:06)
5-16 [sass项目_邀请+概览] highcharts总结 (04:53)
5-17 [sass项目_邀请+概览] daterangepicker时间区间选择 (26:11)
5-18 [sass项目_邀请+概览] 优先级饼图的展示 (21:47)
5-19 [sass项目_邀请+概览] 人员任务配比 (50:52)
5-20 [sass项目_邀请+概览] 画图的重点难点 (03:30)
6-1 [sass项目_支付环节] 支付流程 (09:01)
6-2 [sass项目_支付环节] 价格页面展示 (13:23)
6-3 [sass项目_支付环节] 订单信息展示 (30:30)
6-4 [sass项目_支付环节] 立即支付-创建订单 (16:09)
6-5 [sass项目_支付环节] 立即支付-创建订单(bug修复) (01:13)
6-6 [sass项目_支付环节] 支付宝支付-账户申请和准备 (25:14)
6-7 [sass项目_支付环节] 支付宝支付-参数和面试题 (27:19)
6-8 [sass项目_支付环节] 支付宝支付-签名原理 (21:35)
6-9 [sass项目_支付环节] 支付宝支付-签名的实现 (07:54)
6-10 [sass项目_支付环节] 支付宝支付-支付的实现 (12:37)
6-11 [sass项目_支付环节] 支付宝支付-代码封装 (09:30)
6-12 [sass项目_支付环节] 支付宝支付-支付回调处理 (31:15)
6-13 [sass项目_支付环节] 支付宝支付-陈硕答疑 (01:47)
6-14 [sass项目_支付环节] 订单列表 (07:17)
6-15 [sass项目_支付环节] 作业及之后知识点预告 (23:25)