Reputation: 124
I have some mistake error with my Django Project.
So, i'm use 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<pk>\d+)/invite/?$', CompaniesInviteView.as_view(), name='companies'),
)
And, when i'm send POST request:
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 say me:
<QueryDict: {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']}>
2015-12-08 18:09:31,393 DEBUG fus.utils params (101) GET: <QueryDict: {}>
2015-12-08 18:09:31,393 DEBUG fus.utils params (102) POST: <QueryDict: {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']}>
So i'm send
{
"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" }
]
}
I'm get
{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']}
And, i don't know why. Can someone help me? Maybe someone know, how fix this
Upvotes: 1
Views: 611
Reputation: 5475
In requests you need to use json
instead of data
like:
reg = r.post('http://localhost:8000/api/companies/15/invite', json=data)
and to access the post data you should use 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
Upvotes: 1