Трясогузка Модель Admin.Несколько разделов для пользователя - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь настроить Wagtail для существующей пользовательской модели пользователя.В соответствии с требованиями должно быть доступно несколько страниц пользователя, представляющих разных типов пользователей (Regular, Manager и т. Д.). Я попытался создать отдельный ModelAdmin для каждого случая, переопределив get_queryset для фильтрации по типу пользователя.Но похоже, что все они показывают первое определение ModelAdmin, так как все они имеют модель - User

Затем я попытался использовать модель Proxy, в этом случае отображение вообще не отображается, как, по-видимому, делает Wagtail.не поддерживают прокси-модели.

Единственный вариант, который я вижу сейчас, - это создание собственных представлений и добавление пунктов меню, ведущих к нему

Пожалуйста, посоветуйте, как лучше / проще всего добиться этого втрясогузка

Ответы [ 2 ]

0 голосов
/ 17 мая 2019

Wagtail 2.5 теперь поддерживает Django 2.2, а Django 2.2 теперь создает разрешения для прокси-моделей, используя тип содержимого прокси-модели, а не тип содержимого конкретной модели. Wagtail в настоящее время не поддерживает настройку разрешений моделей прокси в Wagtail admin , но если вы обновите Wagtail 2.5 / Django 2.2, вы можете установить групповые разрешения для моделей прокси с помощью администратора Django, и выхорошо, что не нужно permission_helper_class.

Я назначал права пользователей для групп и, в отличие от обсуждения в следующем выпуске Github, с удивлением увидел, что все прокси-модели корректно появились послеОбновление Wagtail 2.5 / Django 2.2 (см. Этот выпуск Github и комментарий о том, что это, вероятно, произошло, потому что модели прокси зарегистрированы в ModelAdmin).Я подтвердил, что прокси-модели должны быть зарегистрированы в ModelAdmin, чтобы появиться на экране разрешений групп.

Не забудьте запустить migrate после обновления до Django 2.2, поскольку существует миграция, котораявыполнит миграцию любых существующих разрешений модели прокси, переключив тип контента с базовой модели на модель прокси.

0 голосов
/ 08 октября 2018

Wagtail Admin фактически работает с моделями прокси.Недостатком было то, что раздел разрешений Wagtail не включает модели Proxy, поэтому вы должны добавить его вручную:

from wagtail.contrib.modeladmin.helpers import PermissionHelper

class ProxyModelPermissionHelper(PermissionHelper):
    def user_can_list(self, user):
        return True

и ModelAdmin:

permission_helper_class = ProxyModelPermissionHelper
...