2017-09-05 6 views
0

Y a-t-il un moyen de supprimer toutes les autorisations que Django crée par défaut et d'empêcher leur création à nouveau?Empêcher Django de recréer les autorisations par défaut

Actuellement, j'ai une migration qui exécute un Permission.objects.all().delete() et j'ai également ajouté default_permissions =() à la classe Meta de tous mes modèles, et encore une fois que je lance la migration, les autorisations disparaissent pour une seconde, puis Django les recréent (I sais que c'est une véritable récréation parce que l'ID de chaque permission augmente chaque fois que je lance la migration).

Alors, y a-t-il un moyen de désactiver complètement la création automatique des permissions? Notez que je dis désactiver la création, pas cacher les autorisations (que je sais déjà comment faire).

Répondre

0

Avez-vous envisagé de créer une application avec un signal post_migrate pour ce faire?

Je comprends que tout le code de création d'autorisation de l'application auth se produit lorsqu'il appelle sa fonction post_migrate. Voir here et here

Il devrait être le cas que default_permissions =()should prevent creating permissions pour les modèles que vous spécifiez que dans sa classe Meta, mais puisque vous ne pouvez pas faire le tiers ou django applications installées, vous vous retrouvez avec les autorisations dans votre base de données jusqu'à ce que votre nouveau signal de nettoyage post_migrate arrive et les nettoie. Un espoir qui aide