如何修改 wagtail CMS 以便任何用户都可以 post 在自己的博客下写博客 post

How to modify wagtail CMS so that any user can post blog posts under their own blog

我有一个现有网站,它是一个 Django 应用程序。 我已经安装了 Wagtail,现在可以在 www.example.com/cms 访问 Wagtail CMS。 Wagtail 与我的数据库一起正常工作,当我在 wagtail CMS 管理页面中转到 settings 然后 users 时,所有现有用户都可见。

我想使用 Wagtail 为我的网站添加博客功能。

要求

  1. 我希望任何用户都能够创建新博客并向其博客添加帖子。
  2. 我希望用户创建的博客在 www.example.com/blogs/username/
  3. 可见

如何设置 Wagtail 来完成此操作?

我已经查看了 http://docs.wagtail.io/en/v1.9/ but could not figure out where to start with my modifications. I have also installed the example blog project (https://github.com/wagtail/wagtaildemo) 的文档,但我也无法弄清楚如何从中完成上面的 1 和 2。

非常欢迎任何完整的答案或一般性指示。

Wagtail 内置的权限模型支持这种设置:http://docs.wagtail.io/en/stable/topics/permissions.html

为博客创建索引页面后,您将为该博客创建一个组(Wagtail 管理中的设置 -> 组)——可能只包含一个用户——并在 'Page permissions' 部分下,在该索引页上为其分配 'add' 和 'publish' 权限。权限从该点向下传播,'add' 权限包含编辑您自己创建的页面的能力,因此这会产生让用户控制其博客子页面的效果。

这与您描述的设置不太匹配,因为它涉及到现有的 Wagtail 管理员用户必须进行初始设置,而不是用户创建他们自己的 博客.但是,由于所有这些配置都是通过创建/更新标准 Django 模型(例如 GroupPagePermission 在内部完成的,原则上可以编写此过程的脚本 - 例如,您可以实现一个 Django在您的站点前端查看 "Set up my blog",运行以下步骤:

  • /blogs 下创建一个具有 title/slug 匹配 request.user.username 的 BlogIndexPage(有关如何以编程方式创建页面,请参阅 )
  • 为当前用户创建一个用户组(django.contrib.auth.models.Group),并为其分配wagtailadmin.access_admin权限(以便他们可以登录Wagtail admin)
  • 新建一个wagtailcore.PagePermission对应新建群组和博客索引页的对象,并'add'权限;同样获得 'publish' 许可