2
對象級別的權限
來自實例http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/#object-level-permissionsDjango的:對象級權限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
我的需求:所有的查詢集對象的用戶可以編輯
我想有一個Django的ORM查詢集其中包含給定用戶可以編輯的所有對象。
我想我可能會創建一個複雜的Django的ORM過濾器(使用OR和不同的)解決了這個
不會幹
但是,這不幹燥。這不是DRY,因爲我需要兩次編碼。有一次在has_object_permission()
中,有一次在django-orm過濾器中。
問題
如何解決我的需要(所有的查詢集對象的用戶可以編輯)不重複的權限檢查?
雖然這不是我正在尋找的答案:謝謝你考慮這個問題。 – guettli
是的,這也是令我困擾的事情,這不適合Django REST框架。我期待着看看有沒有人有另一種選擇。 – Linovia