Django 针对 CRUD 做了很多 generic view。官方 文档 详细描述了思路和用法。API 文档 讲了具体的执行流程。
核心点在于,Django 预设了一些常用场景:
- 编辑:
- 用户要新建元素时,需要一个 HTML 表单来填写内容,提交后后台需要做数据校验、持久化以及重定向到成功页。于是有了 CreateView
- 用户编辑元素时,与新建非常类似,区别仅在于给用户的 HTML 表单的是 prepopulated 的(已经有值的)。于是有了 UpdateView
- 用户点击网页上的删除入口时,应该弹出一个确认删除页,这个页面中用户可以做最终的删除操作。于是有了 DeleteView
- 查看:
- 用户查看一批元素,即列表页,ListView
- 用户查看单个元素,即详情页,DetailView
并且 Django 提供了大量的自定义能力。