Как получить входные данные из запроса django.POST - PullRequest
1 голос
/ 27 апреля 2019

Я хочу получить входные данные из моего внешнего интерфейса, чтобы я мог создать объект из своего внутреннего интерфейса. Это мой входной запрос:

return axios.post('http://127.0.0.1:8000/api/products/',{
   name: name,
   description: description,
   category: this.category
},
this.config
)
.then(res=>this.props.update(res.data))
.catch(err=>console.err(err));

где name, description и category являются моими входными аргументами, а this.config является просто токеном.

В своем бэкэнде я использую Viewset для обработки всех моих запросов. Пока у меня есть один для GET, но теперь я хочу один для POST. Это мой код:

class ProductViewSet(viewsets.ModelViewSet):
    def list(self, request):
        user = request.user
        queryset = Product.objects.filter(user=user)
        serializer = ProductSerializer(queryset, many=True)
        return Response(serializer.data)
    def create(self, request):
        data = request.POST["name"]
        print("name",name)
        return Response("test")

Я попробовал все варианты, пытаясь извлечь мою информацию из запроса. Я пробовал request.POST.get('name'), request.POST['name'] и другие вещи. Все они возвращают None / KeyError. Что я делаю не так?

1 Ответ

2 голосов
/ 27 апреля 2019

Использование request.data

name = request.data['name']

Этот случай применим, только если DRF / Django получает данные от вашего клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...