Django & TastyPie: demande.Le POST est vide
Je suis en train de faire un POST à l'aide de curl:
curl --dump-header - -H "Content-Type: application/json" -X POST --data '{"item_id": "1"}' http://www.mylocal.com:8000/api/1/bookmarks/
Cependant, la demande.Le POST est toujours vide.
Ci-dessous est mon ModelResource code:
class BookmarkResource(ModelResource):
class Meta:
queryset = Bookmark.objects.all()
resource_name = 'bookmarks'
fields = ['id', 'tags']
allowed_methods = ['get', 'post', 'delete', 'put']
always_return_data = True
authorization= Authorization()
include_resource_uri = False
def determine_format(self, request):
return "application/json"
def obj_create(self, bundle, **kwargs):
request = bundle.request
try:
payload = simplejson.loads(request.POST.keys()[0])
except:
payload = simplejson.loads(request.POST.keys())
Quelqu'un sait ce que je suis absent?
Merci d'avance.
Vous devez vous connecter pour publier un commentaire.
De départ à Django 1.5, POST ne contient pas de non-forme de données de plus. Ils sont maintenant en demande.corps.
https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest.POST
_load_post_and_files()
et dépend de laCONTENT_TYPE
--multipart/form-data
etapplication/x-www-form-urlencoded
Je ne suis pas un cURL attendre, mais la copie d'un POST de demande de Chrome dev tools mon
--data
regardé comme suit:--data "foo=bar&bar=foo"
Il semble que vous souhaiterez peut-être modifier votre commande à:
--data item_id="1"
Note de côté:
Je la recommande fortement de la façon suivante Chrome apps pour faire des requêtes HTTP:
Avancé RESTE client OU Dev Client HTTP
En outre, si vous pouvez faire l'appel dans un navigateur (formulaire de soumission, ou autres) puis en Chrome dev tools network panneau, vous pouvez copier le demande comme une boucle de commande (clic droit dessus)
request
?'{"item_id": "1"}'
est disponible sur le bundle.demande.corps si cela aide. Va continuez à creuser.obj_create
méthode.