web-dev-qa-db-ja.com

Django-adminからデフォルトのアプリを削除する

デフォルトでは、Django-adminにはユーザー、グループ、サイトのアプリがあります。グループとサイトを削除するにはどうすればよいですか?

ルートURLからadmin.autodiscover()を削除しようとしました。次に、admin.site.register(User, UserAdmin)のようなものをアプリモデルのどこかに追加すると、AlreadyRegistered例外が発生しました(これはかなり正しいことです。モデルのユーザーは、Django.contrib.authにすでに登録されています)。

50
Anton Koval'

あなたが間違いなくロードされることを知っているadmin.pyで、試してください:

admin.site.unregister(User)
admin.site.unregister(Group)
admin.site.unregister(Site)
91
Steve Jalim

上記に加えて、「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 admin with inline user profile adminの登録に関する問題 の問題

9
Schmalitz

ユーザーとグループを削除するには、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)
6
user2745509

あなたが得た場合:

Django.contrib.admin.sites.NotRegistered:モデルグループが登録されていません

次に、INSTALLED_APPSが次のような適切な順序になっていることを確認します。

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

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

すべてのアプリをループし、アプリが登録したモデルを登録解除します。

from Django.apps import apps


# De-register all models from other apps
for app_config in apps.get_app_configs():
    for model in app_config.get_models():
        if admin.site.is_registered(model):
            admin.site.unregister(model)


# Register only those models you want
...
0
cdosborn