Как получить все страницы, ожидающие модерации, в Wagtail

Я пытаюсь найти способ запросить все страницы, которые в настоящее время ожидают модерации.

Я попробовал PageRevision.objects.filter(submitted_for_moderation=True).values('page_id'), но, похоже, он возвращает только несколько из них, я не понимаю почему.

Если я смогу получить все страницы, находящиеся на модерации, тогда я смогу получить то, что мне действительно нужно: все страницы, ожидающие модерации для пользователя, вошедшего в систему в данный момент.

Большое спасибо.

Поле submitted_for_moderation используется только устаревшей системой модерации, которая была упразднена в Wagtail 2.10 - страницы, отправленные на модерацию после этого, будут использовать систему Workflow.

Эквивалентом вашего запроса будет:

PageRevision.objects.filter(task_states__status='in_progress').values('page_id')

Начиная с Wagtail 4.0 PageRevision был заменен на Revision модель, которая охватывает и модели сниппетов, так что это станет:

Revision.page_revisions.filter(task_states__status='in_progress').values('object_id')

Я не знаю, какую версию Wagtail вы используете, но, судя по представленному коду, похоже, что вы используете устаревшую функциональность модерации. Обратите внимание, что она устарела и будет полностью удалена в 2024 году. Если вы сможете обновиться, то список страниц, находящихся на модерации (а также в рабочем процессе), будет автоматически добавлен в приборную панель для ваших пользователей. (Если вы обновляетесь постепенно, система должна автоматически создать простой рабочий процесс, имитирующий старую систему модерации)

enter image description here

Вернуться на верх