我有一个简单的休息api,我想发送一个使用请求的帖子请求。
我的网址格式是:
url(r'^$', views.ProductList.as_view())
在我看来,我有:
class ProductList(generics.ListAPIView):
serializer_class = ProductSerializer
def post(self, request, format=None):
print('THIS IS A POST REQUEST')
queryset = [product.name for product in Product.objects.all()]
return Response(queryset)
我正在尝试使用以下方式发送帖子请求:
response = requests.post('http://127.0.0.1:8080/')
然而,这将返回403,并且不打印打印语句。我做了一些研究,我认为它可能与CSRF令牌没有关系,但我不确定如何添加它。有谁知道如何让邮件请求工作?
我使用的是python 3.6.3和Django 1.10
答案 0 :(得分:1)
ListAPIView仅用于列出您的产品,因此禁止POST请求。
ListAPIView
用于表示模型实例集合的只读端点。
您应该使用ListCreateAPIView:
class ProductList(generics.ListCreateAPIView):
"""
List all products or create a product.
"""
queryset = Product.objects.all()
serializer_class = ProductSerializer