Frage

Ich bin viel JavaScript Arbeit im Browser durchführen und mag, dass einige der Back-End-Funktionalität in dem Front-End haben. Insbesondere wäre es schön, die Funktionen get() zu haben, save(), all() und count() den Kunden zur Verfügung. Außerdem wäre es toll, die Feldliste des Modells bereits im generierten JavaScript-Objekt zu haben.

Ob der aktuelle Benutzer kann die Datensätze lesen oder schreiben ist ein separates Problem, das ich mit der Verwendung von Djangos Authentifizierung umgehen werde. Zur Zeit werden würde Retrieval ein Anfang sein.

Kurz gesagt, ist es Code, der ein JavaScript-Modell von einem Django-Modell erzeugen würde?

Danke.

War es hilfreich?

Lösung

Es klingt wie Sie für eine komplette JavaScript-Schnittstelle zu dem Modell und queryset APIs suchen. Ich kann mir nicht vorstellen, dass dies jemals getan haben oder sogar eine einfache Aufgabe sein. Nicht nur würden Sie müssen irgendwie JavaScript Instanzen von Modellen erzeugen (viel mehr als JSON-Serialisierung bietet, da Sie auch die Methoden wollen), aber sie bräuchten einen Web-Service zu machen, die jede Art von DB-API-Aufruf verarbeiten kann. Ich kann nicht einmal ansatzweise vorstellen, wo ich anfangen soll und die Sicherheitsfragen kann zu zahlreich sein, um leicht zu überwinden.

Die Alternative (und viel einfacher) Ansatz einer der verschiedenen Django REST-Module und JSON Serialisierung zu verwenden wäre. Sie könnten eine AJAX-GET-Anforderung für eine Ressource durchführen, die durch eine Reihe von Abfrageparameter identifiziert werden können, die zu verketteten queryset Filter entsprechen würde. Dies würde die JSON Darstellung des Modells Wert zurückgeben. Anschließend können Sie das JavaScript-Objekt ändern und eine überladene AJAX POST-Anfrage die Änderungen zurück an den Server verwenden, bestehen bleiben. Sie würden nicht den Zugriff auf das Modell der Methoden haben, so dass die Funktionalität neu implementiert werden müßte, aber keine Änderungen an ein Modell machen sollte einfach genug sein -. Dies ist im Grunde das JavaScript äquivalent eine HTML-Form unter Verwendung von Daten zu ändern

Andere Tipps

Sie benötigen einen Daten Serializer. Sie können es mit django in Serializer gebaut tun. Es basiert auf offizielle django Website dokumentiert. djangoproject_topics-Serialisierung

Ich habe angefangen, für ein Projekt, das ich denke, tut genau das, was Sie suchen. Sie können es finden in github_bumby_jslib .
Es unterstützt derzeit nur get (), aber ich hoffe, dies bald zu verlängern. Fühlen Sie sich frei Patches beitragen:)

jslib ist eine Django-Anwendung Ziel AJAX Integration mit Django Projekten zu vereinfachen.

Es klingt wie Sie wollen JSON kodieren Ihre Objektdaten. Siehe JSON.org mehr auf das Datenformat.

So ist es schon eine Weile her, seit ich die ursprüngliche Frage gestellt und seitdem hat es eine Reihe von Entwicklungen in Djangoland gewesen. Nicht zuletzt von denen ist eine große kleine Bibliothek namens Django REST-Framework. Ich werde es an einem neuen Projekt verwenden und es sieht ziemlich kewl.

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top