Objektberechtigungen
Beispiel von http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/#object-level-permissionsDjango: Objektberechtigungen DRY
class IsOwnerOrReadOnly(permissions.BasePermission):
"""
Custom permission to only allow owners of an object to edit it.
"""
def has_object_permission(self, request, view, obj):
# Read permissions are allowed to any request,
# so we'll always allow GET, HEAD or OPTIONS requests.
if request.method in permissions.SAFE_METHODS:
return True
# Write permissions are only allowed to the owner of the snippet.
return obj.owner == request.user
Mein Bedürfnis: Queryset aller Objekte ein Benutzer bearbeiten können
ich ein django-orm queryset haben wollen enthält alle Objekte, die ein bestimmter Benutzer bearbeiten kann.
Ich glaube, ich könnte dieses Problem lösen, indem ein Komplex django-orm Filter zu schaffen (mit OR und verschieden)
nicht trocken
Aber das ist nicht trocken. Das ist nicht DRY, weil ich das Zeug zweimal codieren muss. Einmal in has_object_permission()
und einmal im Django-Orm-Filter.
Frage
Wie mein Bedürfnis (queryset aller Objekte ein Benutzer bearbeiten kann) lösen, ohne Duplizierung die Erlaubnis überprüfen?
Obwohl dies nicht die Antwort ist, nach der ich gesucht habe: Danke, dass Sie darüber nachgedacht haben. – guettli
Ja, das stört mich auch und das ist nicht passend für Django REST Framework. Ich freue mich darauf zu sehen, ob jemand eine andere Option hat. – Linovia