Pregunta

Estoy realizando una gran cantidad de trabajo de JavaScript en el navegador y me gustaría tener algo de esa funcionalidad de back-end en el front-end. Específicamente, sería bueno tener las funciones get () , save () , all () y count () disponible para el cliente. Además, sería genial tener la lista de campos del modelo ya disponible en el objeto JavaScript generado.

Si el usuario actual puede leer o escribir los registros es un problema aparte, me ocuparé de usar la autenticación de Django. Por el momento, la recuperación sería un comienzo.

En resumen, ¿hay código que generaría un modelo de JavaScript a partir de un modelo de Django?

Gracias.

¿Fue útil?

Solución

Parece que está buscando una interfaz de JavaScript completa para el modelo y las API de conjunto de consultas. No puedo imaginar que esto se hubiera hecho alguna vez o incluso que fuera una tarea simple. No solo tendría que generar de alguna manera instancias de modelos de JavaScript (mucho más de lo que proporciona la serialización JSON, ya que también desea los métodos), sino que también debería exponer un servicio web que puede manejar todo tipo de llamadas DB-API. Ni siquiera puedo empezar a imaginar por dónde empezar y los problemas de seguridad pueden ser demasiado numerosos para superarlos fácilmente.

El enfoque alternativo (y mucho más simple) sería utilizar uno de los varios módulos REST de Django y la serialización JSON. Podría realizar una solicitud GET de AJAX en un recurso, que se puede identificar mediante una serie de parámetros de consulta que serían equivalentes a los filtros de conjunto de datos encadenados. Esto devolvería la representación JSON de los valores del modelo. Luego, puede modificar el objeto JavaScript y usar una solicitud AJAX POST sobrecargada para conservar los cambios en el servidor. No tendría acceso a los métodos del modelo, por lo que la funcionalidad tendría que volver a implementarse, pero hacer cualquier cambio en un modelo debería ser lo suficientemente sencillo: este es básicamente el equivalente de JavaScript de usar un formulario HTML para modificar los datos.

Otros consejos

Necesitas un serializador de datos. Puedes hacerlo con django incorporado en serializadores. Está documentado en el sitio oficial de django. djangoproject_topics-serialization

Comencé un proyecto que creo que hace exactamente lo que estás buscando. Lo puedes encontrar en github_bumby_jslib .
Actualmente solo admite get (), pero espero extenderlo pronto. Siéntase libre de contribuir parches :)

jslib es una aplicación de Django que apunta a simplificar la integración de AJAX con tus proyectos de Django.

Parece que quieres codificación JSON los datos de su objeto. Consulte JSON.org para obtener más información sobre el formato de los datos.

Ha pasado un tiempo desde que publiqué la pregunta original y desde entonces ha habido varios desarrollos en Djangoland. No menos importante de esto es una gran pequeña biblioteca llamada Django REST Framework. Lo usaré en un nuevo proyecto y se verá bastante bien.

http://www.django-rest-framework.org

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top