我正在尝试安装django-filer
,在遵循安装文档(pip安装,添加到INSTALLED_APPS
等)后,当我尝试运行我的开发服务器时,我在终端中得到以下错误...
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.
如错误输出所示,我用CustomUser
扩展了Django用户模型,我也扩展了AdminSite
以在管理中获取自定义url,所以可能是扩展这些导致了错误,对此有什么可能的解决方案吗?
错误显示为an admin has to be registered
,并且我注册了多个超级用户。
1条答案
按热度按时间yzckvree1#
发生此错误的原因是filer应用程序尝试在其管理界面中使用CustomUser模型,但找不到该模型的注册管理员。要解决此问题,你需要为与filer应用程序兼容的CustomUser模型创建管理类。
为此,您可以将filer.admin.permissionadmin. PermissionAdmin或filer.admin.folderadmin. FolderAdmin(而不是默认的admin.ModelAdmin类)子类化,然后将您的自定义管理员类注册到CustomUser模型。
例如,您可以在app目录中创建一个名为admin.py的文件,并添加以下代码:
此代码创建一个自定义管理类CustomUserAdmin(继承自filer.admin.folderadmin. FolderAdmin),然后使用admin.site.register()方法将其注册到CustomUser模型。
您还应该注意,对filer.admin.folderadmin. FolderAdmin进行子类化也需要对filer.admin.permissionadmin.PermissionAdmin进行子类化,因此您可能需要创建另一个继承自filer.admin.permissionadmin.PermissionAdmin的自定义管理类,并将其注册到CustomUser。
下面是更新后的代码:
这段代码创建了一个继承自UserAdmin和FolderAdmin的自定义管理类CustomUserAdmin,然后将其注册到CustomUser模型。
如果遇到任何问题,您可能还需要对PermissionAdmin执行相同的操作