同样跑在 Django 上,Wagtail 和 django CMS 到底该选谁
Python CMS 生态里的另一个主力是 django CMS(项目名是小写 django 加空格和大写 CMS,指这个独立开源项目,别跟「所有用 Django 写的 CMS」混为一谈)。它和 Wagtail 都跑在 Django 上、都用 BSD-3-Clause,但页面内部怎么拼、编辑在哪儿改、多语言怎么存,两家各走一条路。
django CMS(BSD-3-Clause,最新正式版 5.1.3/2026-09)
2007 年启动,比 Wagtail 早七年,最早由瑞士云服务商 Divio(现 Amondi Group)发起,2020 年移交设在苏黎世的非营利组织 django CMS Association 统筹维护。协议同为 BSD-3-Clause,商用和闭源二开都不受限。用户集中在欧洲政企与高校,官网案例库在列的机构有 NASA、国家地理、Canonical、PBS。
- 页面树与占位槽:整站按父子层级组织页面树,页面内部靠模板里的占位槽(Placeholder)加插件(Plugin)排版;Wagtail 底层也是页面树(
django-treebeard)。 - 前台直编:编辑登录后直接在网站前台双击文字修改、拖放插件调版式,当场看到效果,接近 Concrete CMS 的编辑体验。
- 底层多语言:
Page管树位置与路由,PageContent按语种存标题、URL 别名、模板和插件槽;加语种不用复制整棵树,回退链在CMS_LANGUAGES里配。 - 插件与 Apphook:文本、图片、表单、轮播都是独立插件实例;现成的 Django 业务应用可以用 Apphook 挂到页面树节点下,共用整站导航与权限。
上手要穿过页面、占位槽、插件、应用钩子四层,4.x 到 5.x 又拆出 djangocms-versioning、djangocms-alias 等独立包,新团队摸清套路比 Wagtail 慢。升大版本也得等这一串配套包:5.1 系列把最低依赖抬到 Django 5.2 LTS,官方把富文本、文件管理、版本控制都拆成了单独的包。
Wagtail vs django CMS:怎么选
1. 编辑想要「填结构化表单」还是「在前台页面拖组件」?
资讯、文档、产品目录这类字段固定的内容,或页面由十几种预设块(引言、代码块、图集、数据卡)拼成,选 Wagtail:强类型 Page 子类加 StreamField,后台是独立的 wagtail.admin,左边填表单、右边实时预览。运营习惯看着前台网页双击改字、往侧栏槽位拖组件,选 django CMS:它建在 Django Admin 之上加前台工具栏,插件实例逐个落表关联。
2. 多语言是不是头号刚需?
要同时维护四五个以上语种、栏目层级一致但局部插件可能不同,选 django CMS:同一个 Page 节点下挂多行按语种区分的 PageContent,不用维护多棵树。Wagtail 每个 Locale 存一棵独立页面树,靠共享 UUID 的 translation_key 关联,翻译工作流通常要装 wagtail-localize。单语种或常规中英双语站,两家都够用。
3. 前后端要不要彻底拆开?
定死了后端只吐 JSON、前端交给 Next.js 或 Nuxt,优先 Wagtail:自 1.4 起内置 wagtail.api.v2,8.0 起加入 wagtail.api.v3 预览模块,StreamField 原生就是 JSON。
django CMS 从 4.2 起也能用 djangocms my_project --mode headless 配官方 djangocms-rest 输出接口,但前台直编依赖页面 DOM 与模板标签,拆成纯 Headless 还得给前端做桥接。走传统服务端模板渲染(或局部混用 HTMX / Alpine.js),两家都顺手,django CMS 的前台直编反而能发挥全部威力。
常被搜到、但不在候选里的三个名字
-
Mezzanine(BSD-2-Clause,PyPI 最新版 6.1.1/2025-06):依赖锁在
django<5,>=2.2,Django 4.2 LTS 已停止支持,官网域名挂牌出售,新项目别选。 -
FeinCMS(BSD-3-Clause,PyPI 最新版 26.10.1/2026-10):按年月发版的老项目,作者重心已转到 feincms3。
feincms3(BSD-3-Clause,6.1.1/2026-10)是给开发者自己搭内容块的工具箱,不算成品 CMS。
-
Saleor(BSD-3-Clause,最新正式版 3.22.42/2026-10):基于 Django + GraphQL 的 Headless 电商引擎,管商品、变体、库存和订单;内容站不用往里跳。
- 点赞
- 收藏
- 关注作者
评论(0)