web-dev-qa-db-fra.com

Supprimer les applications par défaut de Django-admin

Par défaut, dans Django-admin, il existe des utilisateurs, des groupes et des applications de sites. Comment puis-je supprimer des groupes et des sites?

J'ai essayé de supprimer admin.autodiscover() des URL racines. Ensuite, quand j'ai ajouté quelque chose comme admin.site.register(User, UserAdmin) quelque part dans mes modèles d'applications, j'ai eu une exception AlreadyRegistered (ceci est juste à droite - les modèles utilisateurs déjà enregistrés dans Django.Contrib.auth).

50
Anton Koval'

Dans un administrateur.py vous savez sera certainement chargé, essayez:

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

En plus de la double double Vérifiez votre commande de "installé_apps" dans "paramètres.py"

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'
]

Sinon, cela provoquera une erreur. Voir ici: problème avec Django admin Enregistrement d'un profil utilisateur en ligne admin

9
Schmalitz

Pour se débarrasser des utilisateurs et des groupes, je devais faire dans 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

Si tu as:

Django.contrib.admin.sites.NotRégister: le groupe de modèle n'est pas enregistré

Ensuite, assurez-vous que votre installation installée dans un ordre approprié comme celui-ci:

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

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

Boucle via toutes les applications et désenregistrez tous les modèles qu'ils ont enregistrés.

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