简体   繁体   English

从Django-admin中删除默认应用程序

[英]Remove default apps from Django-admin

By default, in Django-admin there is Users, Groups, and Sites apps. 默认情况下,在Django-admin中有用户,组和站点应用程序。 How can I remove Groups and Sites? 如何删除群组和网站?

I tried to remove admin.autodiscover() from root urls. 我试图从根网址中删除admin.autodiscover() Then, when I added something like admin.site.register(User, UserAdmin) somewhere in my app models I got an AlreadyRegistered exception (this is fairly right - models users already registered in django.contrib.auth). 然后,当我在我的应用程序模型中的某处添加了admin.site.register(User, UserAdmin)类的东西时admin.site.register(User, UserAdmin)我得到了一个AlreadyRegistered异常(这是相当正确的 - 模型用户已在django.contrib.auth中注册)。

In an admin.py you know will definitely be loaded, try: 在admin.py中,你知道肯定会加载,尝试:

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

In addition to the above double check your ordering of "INSTALLED_APPS" in "settings.py" 除上述内容外,请仔细检查“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'
]

Otherwise it will cause an error. 否则会导致错误。 See here: Issue with Django admin registering an inline user profile admin 请参阅此处: Django管理员注册内联用户配置文件admin的问题

To get rid of Users and Groups I had to do in admin.py: 要摆脱我必须在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)

If you got: 如果你有:

django.contrib.admin.sites.NotRegistered: The model Group is not registered django.contrib.admin.sites.NotRegistered:模型组未注册

Then make sure that your INSTALLED_APPS in proper order like this: 然后确保您的INSTALLED_APPS正确顺序如下:

enter code hereINSTALLED_APPS = (
# [1] Django apps
'django.contrib.auth',
...

# [2] your custom apps
'anyproject.anytuff',
)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM