Ich spiele ein wenig mit der Heavy-Client-App.
Stellen Sie sich vor, ich habe dieses Modell:
class Category(models.Model):
name = models.CharField(max_length=30)
color = models.CharField(max_length=9)
Ich verwende Knockoutjs (aber ich denke, das ist nicht wichtig). Ich habe eine Liste (observableArray) mit Kategorien und ich möchte eine neue Kategorie erstellen.
Ich erstelle ein neues Objekt und schiebe es in die Liste. So weit, so gut.
Was ist mit der Speicherung in meiner Datenbank? Da ich tastypie verwende, kann ich einen POST an "/api/v1/category/" durchführen und voilà, die neue Kategorie ist in der DB.
Ok, aber... Ich habe die Seite nicht aktualisiert, also... wenn ich die neue Kategorie aktualisieren möchte, wie mache ich das?
Ich meine, wenn ich die Kategorien abrufen, kann ich die ID speichern, so dass ich ein Put zu '/api/v1/Kategorie/id' machen kann und die Änderungen zu speichern, aber... wenn ich eine neue Kategorie erstellen, die DB eine ID zuweisen, aber mein Javascript weiß nicht, dass id noch.
Mit anderen Worten, der Arbeitsablauf ist in etwa so:
ein Get machen > die vorhandenen Objekte (mit ihren IDs) auf eine Liste schieben > eine neue Kategorie erstellen > sie auf die Liste schieben > die vorhandene Kategorie speichern (die Kategorie hat keine ID im Javacript) > die Kategorie bearbeiten > Wie speichere ich die Änderungen?
Meine Frage ist also, was ist der gemeinsame Weg? Ich dachte an das Senden der Kategorie und das Abrufen der id irgendwie und weisen Sie es zu meinem Objekt auf js, um in der Lage sein, es später zu ändern. Das Problem ist, dass ein POST an den Server nichts zurückgibt.
In der Vergangenheit habe ich so etwas getan, senden Sie das Objekt per Post, speichern Sie es, rufen Sie es ab und senden Sie es zurück, auf der Erfolg-Methode abrufen die ID und weisen Sie es dem js-Objekt.
Danke!