我正在尝试在预先存在的Django项目中使用Wagtail。我已经安装了CMS,并且在现有的Django管理员中似乎运行良好-我可以使用Django管理员的用户之一进行身份验证,并看到CMS UI,一切都很好。
但是:无论我如何尝试,作为管理员用户,我都无法在页面URL(例如/ cms / pages / 3 /)上看到“添加子页面”按钮。不显示“添加子页面”菱形图标。这有点麻烦,因为所有教程和示例都假定该图标已经显示!
我登录的用户在auth_user中被设置为“ is_superuser” ='t',并且该用户所在的两个组之一已被授予Django admin中的所有wagtail权限(我很拼命!),但仍然没有骰子。我还尝试将所有权限授予其他(非管理员)用户,并以他们的身份登录,但仍然看不到该按钮。
我创建了一个基本的HomePage,该HomePage继承了Page的子类,但仍然看不到创建它的方法。深入研究,我发现用户组之一(auth_group.id = 1)在“ wagtailcore_grouppagepermission”中具有对我正在CMS中查看的页面的“添加”权限,而该页面看起来是正确的。
我是Python / Django的新手,所以我可能错过了一些显而易见的东西!
[更新]
我可以看到以下行未能通过对specific_class
(除None
以外的任何内容)的测试。如果我修改返回True
的行,则会在CMS UI中看到该按钮:
./ core / models.py:
def can_add_subpage(self):
...
if specific_class is None or not specific_class.creatable_subpage_models():
print('##', specific_class) # None
return False
...
为什么specific_class
是None
? 是 specific_class
到底是什么?
看看subpage_types
声明:https://docs.wagtail.io/en/latest/reference/pages/model_reference.html?highlight=parent_page#wagtail.core.models.Page.subpage_types
也请参见下面的parent_page_types
。>>