Benutzerberechtigungen für Proxy-Modelle in modeladmin

8

Bei Verwendung eines Proxy-Modells:

%Vor%

Es sieht so aus, als ob nur Superuser über die Admin-Site auf die CustomUf zugreifen können ... Ich kann nicht herausfinden, wie man regulären Benutzern Berechtigungen auf CustomUf erteilt ...

    
Lapin-Blanc 11.11.2011, 16:28
quelle

4 Antworten

12

Ok, Chris Bemerkung über Inhaltstypen gab mir den Hinweis ...

Ich habe den Fehler gemacht, das Proxy-Objekt in "admin.py" zu definieren. Auf diese Weise müssen Sie Superadmin sein, um darauf zuzugreifen.

Wenn ich das Proxy-Objekt in models.py definiere, erscheint der Inhaltstyp und alles funktioniert einwandfrei ...

    
Lapin-Blanc 12.11.2011, 11:07
quelle
4

Sie müssen syncdb erneut ausführen, damit die neuen Inhaltstypen abgerufen werden können.

    
Chris Pratt 11.11.2011 16:30
quelle
4

Bitte sehen Sie sich diese verwandte Django-Ausgabe an: # 11154

Sie können dies umgehen, indem Sie die Zeilen wie folgt manuell zur Tabelle 'auth_permission' hinzufügen:

%Vor%

Hierbei ist die ID des Inhaltstyps die Ganzzahl-ID des Inhaltstyps relavent.

    
AgDude 27.03.2012 14:01
quelle
1

Ich weiß, dass diese Frage vor einer Weile geschlossen wurde, aber ich teile, was für mich funktionierte, falls es anderen helfen könnte.

Es stellt sich heraus, dass die Berechtigungen für die Proxy-Modelle, die ich erstellt habe, unter den übergeordneten Apps aufgeführt waren, und obwohl ich meinem nicht-super-Benutzer alle Berechtigungen gewährt habe, wurde ihm weiterhin der Zugriff auf meine Proxy-Modelle über den Administrator verweigert.

Wenn Sie rohes SQL vermeiden möchten Um die Fehlerbehebung in Python zu starten, müssen Sie einen bekannten Django-Fehler umgehen ( Ссылка ) und eine Verbindung zum post_syncdb -Signal herstellen um ordnungsgemäß Berechtigungen für die Proxy-Modelle zu erstellen. Der folgende Code wurde von Ссылка für einige der Kommentare zu diesem Thema geändert.

Ich habe das in myapp / models.py platziert, das meine Proxy-Modelle enthielt. Theoretisch kann dies in einem Ihrer INSTALLED_APPS nach django.contrib.contenttypes liegen, da es geladen werden muss, nachdem der update_contenttypes Handler für das post_syncdb Signal registriert wurde, damit wir die Verbindung trennen können.

%Vor%     
Steely 15.10.2014 21:52
quelle

Tags und Links