我有一个扩展generics.ListAPIView
的Django视图。它可以很好地与get请求一起使用,但是由于URL的字符限制,现在我需要通过POST发送请求。这是相同的请求,我唯一需要更改的是POST方法。
我当前的代码非常简单:
class MyClass(generics.ListAPIView):
serializer_class = MySerializer
paginate_by = 1
def get_queryset(self):
queryset = SomeClass.objects.all()
# do some filtering
如何为此类添加POST支持?
答案 0 :(得分:1)
您可以使用ListCreatAPIView并改写create
方法来执行与list
方法相同的操作。也许您可以执行以下操作:
class MyClass(generics.ListAPIView):
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)
但是我建议使用指定的方法。
答案 1 :(得分:1)
尝试一下:
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)