如何在django rest framework权限中获取param PK?
How to get the param PK in django restframework permission?
我在 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']
的请求参数,但他们都 return 说对象没有属性。
如果 pk
是 POST 请求的参数,您可以使用 request.POST.get('pk')
访问它。在您的 post 中,您没有使用 get()
,所以这可能是问题所在。
如果对象作为参数提供给函数,我假设您需要它的 ID。这也可以通过 obj.id
.
来实现
假设你的路径是:
path('listings/get/category/<str:pk>/', endpoints.HousesWithSameCategory.as_view()),
您的要求:api/listings/get/category/1/
在您的 class 方法视图中使用:
def get_queryset(self):
print(self.kwargs)
这将 return {'pk': '1'}
self.kwargs
将 return 您所有的动态参数
我在 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']
的请求参数,但他们都 return 说对象没有属性。
如果 pk
是 POST 请求的参数,您可以使用 request.POST.get('pk')
访问它。在您的 post 中,您没有使用 get()
,所以这可能是问题所在。
如果对象作为参数提供给函数,我假设您需要它的 ID。这也可以通过 obj.id
.
假设你的路径是:
path('listings/get/category/<str:pk>/', endpoints.HousesWithSameCategory.as_view()),
您的要求:api/listings/get/category/1/
在您的 class 方法视图中使用:
def get_queryset(self):
print(self.kwargs)
这将 return {'pk': '1'}
self.kwargs
将 return 您所有的动态参数