2017-09-05 5 views
0

Gibt es eine Möglichkeit, dass ich alle Berechtigungen entfernen kann, die Django standardmäßig erstellt und sie daran hindert, sie erneut zu erstellen?Django daran hindern, Standardberechtigungen neu zu erstellen

Zur Zeit habe ich eine Migration, die ein Permission.objects.all().delete() läuft und ich habe auch default_permissions =() zur Meta Klasse aller meiner Modelle, und noch hinzugefügt, sobald ich die Migration ausführen, verschwinden die Berechtigungen für eine Sekunde, und dann Django erschafft sie (I Ich weiß, dass es eine echte Erholung ist, da die ID jeder Berechtigung bei jeder Migration zunimmt.

Also, gibt es eine Möglichkeit, die automatische Erstellung von Berechtigungen vollständig zu deaktivieren? Beachten Sie, dass ich sage deaktivieren Erstellung, nicht Verstecken Berechtigungen (die ich bereits weiß, wie zu tun).

Antwort

0

Haben Sie nach einer App gesucht, die ein post_migrate Signal dafür hat?

Ich verstehe, dass alle Berechtigungserstellung Code der Auth-App passiert, wenn es seine post_migrate-Funktion aufruft. Siehe here und here

Es sollte der Fall sein, dass default_permissions =()should prevent creating permissions für die Modelle, die Sie in ihrer Meta-Klasse angeben, dass jedoch, da Sie nicht, dass auf Dritte tun oder installierten Anwendungen django, sind Sie mit den links Berechtigungen in Ihrer Datenbank, bis Ihr neues Bereinigungssignal post_migrate ankommt und sie bereinigt.

Hoffe, dass hilft

Verwandte Themen