Python Django泛型.ListAPIView接受POST方法
我有一个Django视图,它扩展了Python Django泛型.ListAPIView接受POST方法,python,django,http,Python,Django,Http,我有一个Django视图,它扩展了泛型.ListAPIView。它可以很好地处理get请求,但是由于URL的字符限制,现在我需要通过POST发送请求。这是相同的请求,我唯一需要更改的是发布的方法。 我当前的代码非常简单: class MyClass(generics.ListAPIView): serializer_class = MySerializer paginate_by = 1 def get_queryset(self): queryset = SomeClass.obje
泛型.ListAPIView
。它可以很好地处理get请求,但是由于URL的字符限制,现在我需要通过POST发送请求。这是相同的请求,我唯一需要更改的是发布的方法。
我当前的代码非常简单:
class MyClass(generics.ListAPIView):
serializer_class = MySerializer
paginate_by = 1
def get_queryset(self):
queryset = SomeClass.objects.all()
# do some filtering
如何向该类添加POST支持?您可以使用并超越create
方法来执行与list
方法相同的操作。也许你可以做如下的事情:
class MyClass(generics.ListCreateAPIView):
serializer_class = MySerializer
paginate_by = 1
def get_queryset(self):
queryset = SomeClass.objects.all()
# do some filtering
def create(self, request, *args, **kwargs):
# maybe replace request.method with 'GET'
self.list(request, *args, **kwargs)
但我建议使用指定的方法。尝试以下方法:
class MyClass(generics.ListAPIView):
serializer_class = MySerializer
paginate_by = 1
def get_queryset(self):
queryset = SomeClass.objects.all()
# do some filtering
def post(self, request, *args, **kwargs):
return self.list(request, *args, **kwargs)
如果我理解正确,我不是舒尔。您是想用POST方法发送GET请求,还是想在类中添加POST方法?使用POST检索记录违反REST规范,不推荐使用。