从Django-admin中移除默认应用
在Django的后台管理系统中,默认会有用户、用户组和站点这几个功能模块。那我该怎么去掉用户组和站点呢?
我试着把 admin.autodiscover()
这一行从根目录的URL中去掉。结果当我在我的应用模型中添加类似 admin.site.register(User, UserAdmin)
的代码时,出现了一个 AlreadyRegistered
的错误(这其实是正常的,因为用户模型已经在django.contrib.auth中注册过了)。
6 个回答
8
为了去掉用户和组的功能,我在admin.py文件里做了以下操作:
from django.contrib import admin
# Need to import this since auth models get registered on import.
import django.contrib.auth.admin
import django.contrib.auth.models
from django.contrib import auth
admin.site.unregister(auth.models.User)
admin.site.unregister(auth.models.Group)
12
除了上面提到的,记得再检查一下“settings.py”文件里“INSTALLED_APPS”的顺序。
INSTALLED_APPS = [
# django apps first
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# custom apps below
'my_app'
]
否则会导致错误。可以查看这里了解更多信息:关于Django管理后台注册内联用户资料管理的问题
122
在一个你确定会被加载的admin.py文件中,可以尝试这样做:
admin.site.unregister(User)
admin.site.unregister(Group)
admin.site.unregister(Site)