J’ai une erreur d’erreur avec mon projet Django.
Donc, j’utilise Django Rest Framework
class CompaniesInviteView(APIView): def get(self, request, pk=None): return Response({}, status=status.HTTP_204_NO_CONTENT) def post(self, request, pk=None, **kwargs): print request.POST
Urls:
from django.conf.urls import patterns, url, include from views import * urlpatterns = patterns( '', url(r'^(?P\d+)/invite/?$', CompaniesInviteView.as_view(), name='companies'), )
Et quand je vais envoyer une requête POST:
import requests r = requests.Session() data = { "users": [ { "first_name": "1", "last_name": "1", "email": "[email protected]", "password1": "123", "password2": "123" }, { "first_name": "12", "last_name": "12", "email": "[email protected]", "password1": "123", "password2": "123" } ] } print data reg = r.post('http://localhost:8000/api/companies/15/invite', data=data)
Django me dit:
2015-12-08 18:09:31,393 DEBUG fus.utils params (101) GET: 2015-12-08 18:09:31,393 DEBUG fus.utils params (102) POST:
Donc, j’envoie
{ "users": [ { "first_name": "1", "last_name": "1", "email": "[email protected]", "password1": "123", "password2": "123" }, { "first_name": "12", "last_name": "12", "email": "[email protected]", "password1": "123", "password2": "123" } ] }
Je reçois
{u'users': [u'password1', u'first_name', u'last_name', u'email', u'password2', u'password1', u'first_name', u'last_name', u'email', u'password2']}
Et je ne sais pas pourquoi. Est-ce que quelqu’un peut m’aider? Peut-être que quelqu’un sait comment résoudre ce problème
Dans les requêtes, vous devez utiliser json
au lieu de data
comme:
reg = r.post('http://localhost:8000/api/companies/15/invite', json=data)
et pour accéder aux données post, vous devez utiliser request.data
class CompaniesInviteView(APIView): def get(self, request, pk=None): return Response({}, status=status.HTTP_204_NO_CONTENT) def post(self, request, pk=None, **kwargs): print request.data