我在Django中有这样的权限:
class PermissionName(BasePermission):
def has_object_permission(self, request, view, obj):
if request.method in SAFE_METHODS:
return True
#I want to extract the pk or id params in here.
return False
有人能帮我得到请求的参数吗?我尝试使用self.kwargs["pk"]
,request.POST['pk']
,但它们都返回说对象没有属性。
3条答案
按热度按时间von4xj4u1#
如果
pk
是POST请求的一个参数,您可以使用request.POST.get('pk')
访问它。在您的帖子中,您没有使用get()
,所以这可能是问题所在。如果对象是作为函数的参数提供的,我假设您需要它的ID,这也可以通过
obj.id
实现。lx0bsm1f2#
假设您的路径是:
您的要求:
api/listings/get/category/1/
在类方法视图中用途:
这将返回
{'pk': '1'}
self.kwargs
将返回所有动态参数myzjeezk3#
如果你的url中只有一个
pk
,那么你就使用has_object_permission
。但是,如果您的url中有两个以上的
pk
,该怎么办然后可以从
view
属性中获取pk's
。结果:
{'pk': 13, 'unit_pk': 71}