You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装django-filer遇Admin.E039错误:需注册CustomUser的Admin类

解决django-filer与自定义CustomUser、AdminSite冲突的admin.E039错误

问题根源

django-filer的FolderAdmin和PermissionAdmin默认在autocomplete_fields中引用原生User模型,当你替换为CustomUser并自定义AdminSite后,这两个admin类无法找到已注册的CustomUser admin实例,因此触发admin.E039错误。

解决方案

1. 确保CustomUser注册到自定义AdminSite

在项目的admin.py中,使用你的自定义AdminSite实例注册CustomUser,而非默认的admin.site:

from django.contrib.auth.admin import UserAdmin
from .models import CustomUser
from .admin_site import MyAdminSite  # 你的自定义AdminSite类

admin_site = MyAdminSite(name='custom_admin')
# 注册CustomUser和对应的UserAdmin
admin_site.register(CustomUser, UserAdmin)

2. 重写django-filer的Admin类,替换关联模型

自定义FolderAdmin和PermissionAdmin,将其中autocomplete_fields关联的用户模型替换为CustomUser,再注册到你的AdminSite:

from filer.admin.folderadmin import FolderAdmin
from filer.models import Folder
from filer.admin.permissionadmin import PermissionAdmin
from filer.models import Permission
from .admin_site import MyAdminSite

admin_site = MyAdminSite(name='custom_admin')

# 自定义FolderAdmin,确保autocomplete_fields指向CustomUser
class CustomFolderAdmin(FolderAdmin):
    autocomplete_fields = ('owner', 'parent')

# 自定义PermissionAdmin
class CustomPermissionAdmin(PermissionAdmin):
    autocomplete_fields = ('user', 'group')

# 先取消django-filer默认的注册,再注册自定义Admin类
if Folder in admin_site._registry:
    admin_site.unregister(Folder)
admin_site.register(Folder, CustomFolderAdmin)

if Permission in admin_site._registry:
    admin_site.unregister(Permission)
admin_site.register(Permission, CustomPermissionAdmin)

3. 确认AUTH_USER_MODEL配置

在settings.py中确保已正确指定自定义用户模型:

AUTH_USER_MODEL = "your_app_name.CustomUser"

4. 配置urls.py使用自定义AdminSite

在项目根urls.py中,替换默认admin路由为你的自定义AdminSite:

from .admin_site import admin_site

urlpatterns = [
    path('admin/', admin_site.urls),
    # 其他路由配置...
]

5. 清除缓存并重启服务

执行以下命令清除Django缓存,再重启开发服务器:

python manage.py clearcache
python manage.py runserver

内容的提问来源于stack exchange,提问作者Dixan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:16:05