[pyar] como configurar Django+tastypie+backbone?

Federico Mendez mendezfederico87 en gmail.com
Dom Feb 10 14:14:34 ART 2013


Que groso man!

Igual que raro lo de la version de PyPi, porque pareciera ser la ultima
(0.9.11), pero abajo del todo (
http://pypi.python.org/pypi/django-tastypie/0.9.11) dice que la subieron en
el 2011. yo les deje este
https://github.com/toastdriven/django-tastypie/issues/803. Ahora les agrego
un comment de que solo pasa con la version de PyPi.

Gracias por la mano! =)


2013/2/10 Ariel Camino <arielcamino en gmail.com>

> Efectivamente tenes razón, cree una ApiKey, y por más que la envía
> correctamente en el header, tastypie devuelve 401 UNAUTHORIZED.
>
> Incluso armé mi propia clase de autenticación, para verificar que el
> header llegue correctamente:
>
> (Pdb) request.META['HTTP_AUTHORIZATION']
> 'ApiKey acamino:28d65c6dc167818e85ee4f33164187b541cbc654'
>
> Lo único raro que noté es que en tu repo pusiste un espacio de más en
> blanco, antes de ApiKey, en backbone-tastypie.js linea 42:
>
> https://github.com/herrmendez/poll-app-backbone/blob/master/poll_app/static/js/lib/backbone-tastypie.js#L42
>
> Más allá de eso, el problema está del lado del backend, no de backbone,
> que está armando bien el request, y no es un tema de urls.
>
> Estuve mirando el repo de django-tastypie, y los tipos están commiteando
> muy seguido, así que supuse que era algun bug de la versión que estás
> usando (0.9.11).
>
> SOLUCIÓN:
>
> 1- Volá la versión que tenes en virtualenv:
> pip uninstall django_tastypie
>
> 2- Clonate el repo:
> git clone https://github.com/toastdriven/django-tastypie.git
>
> 3- Mové tastypie a tu pythonpath:
>
> mv django-tastypie/tastypie [tupath]/poll-app-backbone/tastypie
>
> 4- y walla! funciona:
>
> POST http://127.0.0.1:8000/api/v1/poll/ 201 CREATED
> (con ApiKeyAuthentication() )
>
> Habría que avisarle a la gente de tastypie que la versión que está
> empaquetada en PyPi tiene este problema, ¿vos creaste un issue?
>
> Saludos!
> --
> Ariel Camino
>
> El 10/02/13 07:19, Federico Mendez escribió:
> > Hola Ariel,
> >
> > Para la ApiKey uso el post_save que esta al final de este
> > archivo:
> https://github.com/herrmendez/poll-app-backbone/blob/master/polls/api.py
> >
> > Cuando guardas un usuario nuevo, automaticamente le genera el ApiKey.
> > Esto funciona para los usuarios que agregas, si estas tratando de
> > conseguir la api key de tu superuser tenes que agregarlo manualmente. En
> > vez de usar create_api_key() anda a la consola, trae la instancia de tu
> > usuario, importa tastypie.models.ApiKey y guarda un objeto pasandole tu
> > usuario:
> >
> >>>> from tastypie.models import ApiKey
> >>>> from django.contrib.auth.models import User
> >>>> u = User.objects.get(pk=1)
> >>>>ApiKey(user=u)
> >>>>ApiKey.save()
> >
> > Si despues te fijas en la tabla te tendria que aparecer tu ApiKey. Ya se
> > que con Authentication() lo puedo hacer sin drama, pero en una situacion
> > mas realista esto seria necesario y no encontre data de como usar esto
> > en ningun lado. Si hago el request por cURL no tengo drama, siempre y
> > cuando pase el authorization header por GET (curl --dump-header --H
> > "Content-Type: application/json"-X POST --data '{"question": "Is a test
> > yo?", "pub_date":
> > "2011-05-22T00:46:38"}'"
> http://localhost:8000/polls/api/v1/poll/?username=federico&api_key=10a2d3586e63078ef39f9da8f9aa9209715ed282
> > ).
> >
> >
> >
> >
> > 2013/2/9 Ariel Camino <arielcamino en gmail.com <mailto:
> arielcamino en gmail.com>>
> >
> >     Estuve usando tu app, sin autenticación anda perfecto, es decir
> >     poniendo:
> >
> >     authentication = Authentication()
> >
> >     POST http://127.0.0.1:8000/api/v1/poll/ 201 CREATED 204ms
> >
> >     Lo que no logré hacer es que se genere una ApiKey relacionada a mi
> >     usuario, el signal que pusiste en api.py no parece hacer nada, y si
> >     intento hacerlo a mano estoy en la misma:
> >
> >     (venv)acamino en athos:~/pruebas/poll-app-backbone$ python manage.py
> shell
> >     Python 2.7.3 (default, Aug  1 2012, 05:16:07)
> >     [GCC 4.6.3] on linux2
> >     Type "help", "copyright", "credits" or "license" for more
> information.
> >     (InteractiveConsole)
> >     >>> from tastypie.models import create_api_key
> >     >>> from django.contrib.auth.models import User
> >     >>> create_api_key(User.objects.all()[0])
> >     >>> from tastypie.models import ApiKey
> >     >>> ApiKey.objects.all()
> >     []
> >
> >     cómo hiciste para obtener tu ApiKey?
> >
> >     Saludos!
> >     --
> >     Ariel Camino
> >     _______________________________________________
> >     pyar mailing list pyar en python.org.ar <mailto:pyar en python.org.ar>
> >     http://listas.python.org.ar/listinfo/pyar
> >
> >     PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >
> >     La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre
> >     de Argentina - http://www.usla.org.ar
> >
> >
> >
> >
> > --
> > Mit freundlichen Grüßen,
> > Federico Mendez
> >
> >
> > _______________________________________________
> > pyar mailing list pyar en python.org.ar
> > http://listas.python.org.ar/listinfo/pyar
> >
> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >
> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
> >
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>



-- 
Mit freundlichen Grüßen,
Federico Mendez
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130210/f01e5b78/attachment.html>


More information about the pyar mailing list