我试图自定义不同的权限类,但我认为,代码是95%相同。如果有一个可能的方法,我真的很想使它,使他们可以结合起来,并很容易地调用。你知道吗
假设我有两个不同的自定义权限
class IsUser1(BasePermission):
def has_permission(self, request, view):
if not request.user.is_anonymous:
try:
request.user.user1
return True
except Exception:
return False
return False
def has_object_permission(self, request, view, obj):
pass
class IsUser2(BasePermission):
def has_permission(self, request, view):
if not request.user.is_anonymous:
try:
request.user.user2
return True
except Exception:
return False
return False
def has_object_permission(self, request, view, obj):
pass
有什么简单可行的方法吗?你知道吗
如果没有更好地理解您要做的事情,这似乎是一种可能的方法,您可以重构代码以消除代码重复。你知道吗
它工作的基础是
has_permission
forIsUser1
和IsUser2
的实现之间唯一的变化是它们尝试访问的user
属性,因此我为每个类定义了一个公共超类型,该超类型接受来自每个类的回调,该回调决定它在收到请求时尝试访问哪个属性。你知道吗相关问题 更多 >
编程相关推荐