Wagtail“等待审核的页面”尽管拥有所有权限,但未在仪表板中显示

时间:2017-12-03 20:36:07

标签: python django django-models django-views wagtail

我觉得我错过了一些非常明显的东西,但如果我在默认的编辑/主持人组中+用户是超级用户......

不应该在wagtail仪表板下显示提交审核的页面吗?

我以为我可能错过了权限,所以我去了管理员并在那里添加了每个选项但仍然没有骰子......

能够审核提交给mod审批的页面需要什么?

示例:

我通过以下方式从创建视图以编程方式提交页面以进行审核:

  my_page = self.index.add_child(instance=my_page_instance)
  my_page.unpublish()
  my_page.save_revision(submitted_for_moderation=True)
  if not send_notification(my_page.get_latest_revision().id, 'submitted', None):
      print("Failed to send notification + email for mod approval")

1 个答案:

答案 0 :(得分:2)

问题是,当您以编程方式创建修订时,必须提供用户记录以及save_revision方法调用。它可以是任何用户记录。

示例:

from django.contrib.auth.models import User

some_admin_user = User.objects.all().first() # or request.user if you are doing this where you can access the current request
my_page.save_revision(submitted_for_moderation=True, user=some_admin_user)

<强>原因

生成的主视图PagesForModerationPanel选择相关页面和用户到需要审核的任何修订版。如果没有用户传递给新版本,则意味着这些修订不会显示在管理员中,因为查询不会返回它们。

请参阅admin/views/home.py

中的代码
    self.page_revisions_for_moderation = (user_perms.revisions_for_moderation()
                                          .select_related('page', 'user').order_by('-created_at'))

将此作为潜在错误提交可能是值得的,如果在未提交修订版保存的用户时抛出错误,则可能会更好。