从Django管理员中删除默认应用程序

2024-03-29 09:57:00 发布

您现在位置:Python中文网/ 问答频道 /正文

默认情况下,Django管理中有用户、组和站点应用程序。如何删除组和站点?

我试图从根url中删除admin.autodiscover()。然后,当我在我的应用程序模型中添加类似admin.site.register(User, UserAdmin)的内容时,我得到了一个AlreadyRegistered异常(这是相当正确的——模型用户已经在django.contrib.auth中注册)。


Tags: django用户模型register应用程序url内容admin
3条回答

除上述内容外,请仔细检查“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'
]

否则会导致错误。请看这里:Issue with Django admin registering an inline user profile admin

在admin.py中,您知道肯定会加载,请尝试:

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

为了摆脱我在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)

相关问题 更多 >