Question

J'exécute beaucoup de travaux JavaScript dans le navigateur et j'aimerais disposer de certaines de ces fonctionnalités principales dans le système frontal. Plus précisément, il serait intéressant d’avoir les fonctions get () , save () , all () et count () disponible pour le client. De plus, il serait intéressant de disposer de la liste des champs du modèle déjà disponible dans l’objet JavaScript généré.

La question de savoir si l'utilisateur actuel peut lire ou écrire les enregistrements est une question distincte que je traiterai en utilisant l'authentification de Django. Pour le moment, la récupération serait un début.

En bref, y a-t-il du code qui générerait un modèle JavaScript à partir d'un modèle Django?

Merci.

Était-ce utile?

La solution

Il semble que vous recherchiez une interface JavaScript complète pour les API de modèle et de requête. Je ne peux pas imaginer que cela aurait jamais été fait ou même être une tâche simple. Vous devez non seulement générer en quelque sorte des instances JavaScript de modèles (bien plus que la sérialisation JSON, car vous souhaitez également utiliser les méthodes), mais vous devez également exposer un service Web capable de gérer tous les types d'appels DB-API. Je ne peux même pas commencer à imaginer par où commencer et les problèmes de sécurité risquent d'être trop nombreux pour être facilement résolus.

L’approche alternative (et beaucoup plus simple) consisterait à utiliser l’un des divers modules Django REST et la sérialisation JSON. Vous pouvez effectuer une requête AJAX GET sur une ressource, qui peut être identifiée par une série de paramètres de requête qui seraient équivalents à des filtres de groupe de requêtes chaînés. Cela renverrait la représentation JSON des valeurs du modèle. Vous pouvez ensuite modifier l'objet JavaScript et utiliser une demande AJAX POST surchargée pour conserver les modifications sur le serveur. Vous n’avez pas accès aux méthodes du modèle, de sorte que cette fonctionnalité doit être réimplémentée, mais toute modification apportée à un modèle doit être assez simple: c’est l’équivalent JavaScript d’utiliser un formulaire HTML pour modifier les données.

Autres conseils

Vous avez besoin d’un sérialiseur de données. Vous pouvez le faire avec les sérialiseurs Django intégrés. Il est documenté sur le site officiel de Django. djangoproject_topics-serialization

J'ai lancé un projet qui, à mon avis, fait exactement ce que vous recherchez. Vous pouvez le trouver à github_bumby_jslib .
Cela ne supporte actuellement que get (), mais j'espère pouvoir l'étendre bientôt. N'hésitez pas à contribuer des patchs:)

jslib est une application Django visant à simplifier l'intégration AJAX avec vos projets Django.

Il semble que vous souhaitiez coder JSON . vos données d'objet. Voir JSON.org pour plus d'informations sur le format de données.

Cela fait donc un moment que j'ai posté la question initiale et depuis lors, un certain nombre de développements ont eu lieu à Djangoland. Notamment une excellente petite bibliothèque appelée Django REST Framework. Je vais l'utiliser sur un nouveau projet et ça a l'air très joli.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top