Generar objetos de JavaScript fuera de los modelos de Django

Estoy realizando un montón de trabajo de JavaScript en el navegador y me gustaría tener algo de esa funcionalidad 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 campo del modelo ya disponible en el objeto JavaScript generado.

Si el usuario actual puede leer o escribir los registros es un tema aparte que trataré con la autenticación de Django. Por el momento, la recuperación sería un comienzo.

En resumen, ¿hay algún código que genere un modelo de JavaScript a partir de un modelo de Django?

Gracias.

5

5 Respuestas

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

El enfoque alternativo (y mucho más simple) sería usar uno de los varios módulos REST de Django y la serialización JSON. Puede realizar una solicitud AJAX GET en un recurso, que puede identificarse mediante una serie de parámetros de consulta que serían equivalentes a los filtros de conjuntos de consultas encadenados. Esto devolvería la representación JSON de los valores del modelo. A continuación, puede modificar el objeto JavaScript y utilizar 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 habría que volver a implementar la funcionalidad, pero hacer cualquier cambio en un modelo debería ser lo suficientemente sencillo: básicamente es el equivalente en JavaScript de usar un formulario HTML para modificar los datos.

7
agregado
Sí, creo que este es el enfoque correcto. Tal vez quiera leer jacobian.org/writing/rest-worst-practices probablemente antes de comenzar, sin embargo.
agregado el autor Density 21.5, fuente

You need a data serializer. You can do it with django built in serializers. It is documented on official django site. djangoproject_topics-serialization

1
agregado

I've started a project that I think does exactly what you're looking for. You can find it at github_bumby_jslib.
It currently only supports get(), but I'm hoping to extend this soon. Feel free to contribute patches :)

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

1
agregado

Así que ha pasado un tiempo desde que publiqué la pregunta original y desde entonces ha habido una serie de desarrollos en Djangoland. No menos importante es una pequeña biblioteca llamada Django REST Framework. Voy a usarlo en un nuevo proyecto y se ve bastante kewl.

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

0
agregado

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

0
agregado
La codificación JSON solo proporciona los datos del objeto. No ofrece el modelo de referencia (o su nombre) ni ninguna funcionalidad. :(
agregado el autor Dimitry, fuente
JavaScript - Comunidad española
JavaScript - Comunidad española
4 de los participantes

En este grupo hablamos de JavaScript. Partner: es.switch-case.com