Ich möchte meinem Abfrage-Set ein zusätzliches Feld hinzufügen, das sich auf eine bestimmte Berechtigung bezieht. Ist es möglich, "has_perm" in einem CASE zu verwenden?ist es möglich, "has_perm" innerhalb eines CASE-Querysets in Django zu verwenden?
var_group = Group.objects.all().annotate(mypermission=Case(
When(self.has_perm('app.mypermission'), then=Value(True)),
default=Value(False),
output_field=BooleanField(),
))
Der Fehler ist:
'Selbst' globaler Name ist nicht definiert
Das ist eine gute Idee. Ich habe gerade bemerkt, dass die Gruppe nicht die Methode "has_perm" hat, die nur auf den Benutzer bezogen ist. ** "Group" -Objekt hat kein Attribut "has_perm" **. Irgendeine Idee, diese Methode für die Gruppe zu verwenden? – Steve
Ahhh Sie haben das Modell der Django-Gruppe https://docs.djangoproject.com/es/1.9/ref/contrib/auth/#group-model verwendet. Es hat keine 'has_perm'-Methode. Ich werde die Antwort aktualisieren. –
Die zweite Option ist perfekt: nur (Codename = 'app.permission') funktioniert nicht, ich benutzte (Codename = 'Erlaubnis') – Steve