我有一个现有的Django App网站。
我安装了Wagtail,现在可以在www.example.com/cms
访问Wagtail CMS。 Wagtail与我的数据库一起工作正常,当我转到settings
然后users
时,所有现有用户都在可见的CMS管理页面中。
我想使用Wagtail将博客功能添加到我的网站。
要求
www.example.com/blogs/username/
如何设置Wagtail来实现这一目标?
我已在http://docs.wagtail.io/en/v1.9/查看了文档,但无法确定从哪里开始修改。我还安装了示例博客项目(https://github.com/wagtail/wagtaildemo),但我也无法弄清楚如何从中完成上面的1和2。
任何完整的答案或一般指示都非常受欢迎。
答案 0 :(得分:3)
Wagtail内置的权限模型支持这种设置:http://docs.wagtail.io/en/stable/topics/permissions.html
在为博客创建索引页面后,您将为该博客创建一个组(设置 - > Wagtail管理员中的组) - 可能只包含一个用户 - 并在“页面权限”部分下,分配它在该索引页面上“添加”和“发布”权限。权限从该点向下传播到树上,“添加”权限包含编辑您自己创建的页面的功能,因此这将使用户能够控制其博客的子页面。
这与您描述的设置不完全匹配,因为它涉及现有的Wagtail管理员用户必须进行初始设置,而不是用户创建他们自己的博客。但是,由于所有这些配置都是通过创建/更新标准Django模型(例如Group
和PagePermission
)在内部完成的,因此原则上可以编写此过程的脚本 - 例如,您可以实现Django查看您网站前端的“设置我的博客”,其中包含以下步骤:
/blogs
下创建一个BlogIndexPage,其标题/ slug与request.user.username
匹配(有关如何以编程方式创建网页,请参阅https://stackoverflow.com/a/43041179/1853523)django.contrib.auth.models.Group
),并为其分配wagtailadmin.access_admin
权限(以便他们可以登录Wagtail管理员)wagtailcore.PagePermission
对象,以及“添加”权限;同样适用于“发布”许可