如何在此视图中仅限制 POST 方法

问题描述 投票:0回答:2
class ExampleView(APIView):
    throttle_classes = [UserRateThrottle]

    def get(self, request, format=None):
        content = {
            'status': 'request was permitted'
        }
        return Response(content)

    def post(self, request, format=None):
        content = {
            'status': 'request was permitted'
        }
        return Response(content)
   

我只想限制 post 方法视图而不是 get。 我已经声明了两个视图 POST 和 GET,我只想对我的 POST 视图实施限制

python django django-rest-framework throttling api-throttling
2个回答
0
投票

您可以尝试这个,这会覆盖 get_throttles 方法,并且不包括 POST 方法的限制。

 def get_throttles(self):
    if self.request.method == 'POST':
        return []
    return super().get_throttles()

0
投票

你可以这样尝试

from rest_framework.decorators import throttle_classes
from rest_framework.throttling import UserRateThrottle

class ExampleView(APIView):

    @throttle_classes([UserRateThrottle])
    def get(self, request, format=None):
        content = {
            'status': 'request was permitted'
        }
        return Response(content)

    def post(self, request, format=None):
        content = {
            'status': 'request was permitted'
        }
        return Response(content)
© www.soinside.com 2019 - 2024. All rights reserved.