Как отправить POST-запрос в Django REST API с помощью Python-запросов - PullRequest
0 голосов
/ 19 мая 2018

У меня есть простой api rest, который я хочу отправить запрос на публикацию с использованием запросов.

Мой шаблон URL выглядит так:

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

1 Ответ

0 голосов
/ 20 мая 2018

ListAPIView предназначен только для перечисления ваших продуктов, поэтому запросы POST запрещены.

ListAPIView

Используется для конечных точек только для чтения для представления коллекции экземпляров модели.

взято из Документация Django Rest Framework

Вы должны использовать ListCreateAPIView:

class ProductList(generics.ListCreateAPIView):
    """
    List all products or create a product.
    """
    queryset = Product.objects.all()
    serializer_class = ProductSerializer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...