Как фильтровать списки страниц в wagtail admin, чтобы редакторы видели только страницы из группы, которая является частью?

#python #django #wagtail

#python #django #wagtail

Вопрос:

У меня есть пункт меню, в котором перечислены все страницы сразу со всех родительских страниц в Wagtail admin. Я хотел бы, чтобы там отображались только сообщения, опубликованные пользователями из группы, частью которой является текущий зарегистрированный пользователь.

Мне удалось использовать этот код, чтобы ограничить просмотр пользователями только своих собственных сообщений и подумать, что это может быть расширено до того, что я ищу.

 #admin.py

class PageAdmin(ModelAdmin):
    model = BlogPage
    menu_icon = "doc-full"
    menu_label = "All Posts"
    list_display = ("title", "date", 'owner')

    def get_queryset(self, request):
        qs = super().get_queryset(request)
        #only show articles from the current user
        return qs.filter(owner=request.user)

modeladmin_register(PageAdmin)
  

Спасибо

Ответ №1:

Попробуйте это (непроверено):

return qs.filter(owner__groups__in=request.user.groups.all())

Комментарии:

1. Чтобы это работало, просто нужно протестировать его для пользователей с несколькими группами и модераторами. Спасибо!