1
我正在使用django-rest-framework,我想只允許GET請求到我的API。django-rest-framework:全侷限制請求GET?
這是否有一些全局設置?
目前我個人裝飾的看法,就像這樣:
@api_view(['GET'])
def my_api_view(request, format=None):
# get data
我正在使用django-rest-framework,我想只允許GET請求到我的API。django-rest-framework:全侷限制請求GET?
這是否有一些全局設置?
目前我個人裝飾的看法,就像這樣:
@api_view(['GET'])
def my_api_view(request, format=None):
# get data
你可以寫一個custom Permission classIsRequestMethodGet
將授予訪問權限,只GET
請求。
要實現自定義權限IsRequestMethodGet
,覆蓋BasePermission
類,並實現.has_permission(self, request, view)
方法。如果請求應該被授予訪問權限,該方法應該返回True
,否則返回False
。
from rest_framework import permissions
class IsRequestMethodGet(permissions.BasePermission):
"""
The request is a GET request.
"""
def has_permission(self, request, view):
return request.method == 'GET' # Returns True if GET request
因此,請求將被授予訪問,如果請求方法是GET
,否則不是。
現在,您需要在您的全局設置中包含此自定義權限類。
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'my_app.permissions.IsRequestMethodGet',
)
}
如果Rahul Gupta的回答在下面解決了問題,那麼通過將其標記爲接受將獎勵他的時間將是很好的。 :) – spectras