Администратор для модели "CustomUser" должен быть зарегистрирован, чтобы на него ссылался FolderAdmin.autocomplete_fields

Я пытаюсь установить django-filer и после следования документации по установке (pip install, add to INSTALLED_APPS etc), когда я пытаюсь запустить свой сервер разработки, я получаю следующую ошибку в терминале...

ERRORS:
<class 'filer.admin.folderadmin.FolderAdmin'>: (admin.E039) An admin for model "CustomUser" has to be registered to be referenced by FolderAdmin.autocomplete_fields.
<class 'filer.admin.permissionadmin.PermissionAdmin'>: (admin.E039) An admin for model "CustomUser" has to be registered to be referenced by PermissionAdmin.autocomplete_fields.

Как видно в выводе ошибки. Я расширил модель пользователя Django с помощью CustomUser. Я также расширил AdminSite для получения пользовательских урлов в админке. Так что, возможно, их расширение вызывает ошибку. Есть ли какое-нибудь возможное решение?

В ошибке говорится an admin has to be registered и у меня действительно зарегистрировано несколько суперпользователей.

Эта ошибка возникает потому, что приложение filer пытается использовать модель CustomUser в своем интерфейсе администратора, но не может найти зарегистрированного администратора для этой модели. Чтобы исправить это, вам нужно создать класс администратора для вашей модели CustomUser, совместимый с приложением filer.

Вы можете сделать это, создав подкласс filer.admin.permissionadmin.PermissionAdmin или filer.admin.folderadmin. FolderAdmin вместо класса по умолчанию admin.ModelAdmin, а затем зарегистрировав свой пользовательский класс администратора в модели CustomUser.

Например, вы можете создать файл с именем admin.py в вашем каталоге приложений и добавить следующий код:

from django.contrib import admin
from filer.admin.folderadmin import FolderAdmin
from myapp.models import CustomUser

class CustomUserAdmin(FolderAdmin):
    pass

admin.site.unregister(CustomUser)
admin.site.register(CustomUser, CustomUserAdmin)

Этот код создает пользовательский класс администратора CustomUserAdmin, который наследуется от filer.admin.folderadmin.FolderAdmin, а затем регистрирует его в модели CustomUser с помощью метода admin.site.register().

Вам также следует знать, что подкласс filer.admin.folderadmin.FolderAdmin также требует подкласса filer.admin.permissionadmin. PermissionAdmin, поэтому вам может понадобиться создать другой класс пользовательского администратора, который наследуется от filer.admin.permissionadmin.PermissionAdmin и зарегистрировать его в CustomUser

Та же ошибка. Кто-нибудь нашел решение?

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin, GroupAdmin
from filer.admin.folderadmin import FolderAdmin
from filer.admin.permissionadmin import PermissionAdmin
from django.contrib.auth.models import User, Group


class CustomUserAdmin(UserAdmin, FolderAdmin):
    pass


class CustomGroupAdmin(GroupAdmin, PermissionAdmin):
    pass


admin.site.unregister(User)
admin.site.unregister(Group)

admin.site.register(User, CustomUserAdmin)
admin.site.register(Group, CustomGroupAdmin)

Я пробовал создавать пользовательские решения и регистрировать их. Но это не помогло

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